android的textview怎么初始化
我想问一下,textview难道只能用TextViewtextview=(TextView)findViewById(R.id.xxx);的方式获取吗,为什么我这样写te...
我想问一下,textview难道只能用TextView textview = (TextView)findViewById(R.id.xxx);的方式获取吗,为什么我这样写textview根本没有显示出来呢(以下代码写在mainactivity的oncreate函数中):
TextView textView = new TextView(this);
textView.setText("Go Go Go");
textView.setTop(50);
textView.setLeft(50);
textView.setTextSize(24);
textView.setTextColor(Color.BLACK);
textView.setVisibility(View.VISIBLE);
如果我不想把一个view的初始化写进xml里(也就是不想通过findviewbyid方法新建一个view),还有什么办法?
好吧。。事情是这样的。。这个mainactivity已经有了一个view了,我只是希望在这个view的上面覆盖几个textview,这要怎么做到? 展开
TextView textView = new TextView(this);
textView.setText("Go Go Go");
textView.setTop(50);
textView.setLeft(50);
textView.setTextSize(24);
textView.setTextColor(Color.BLACK);
textView.setVisibility(View.VISIBLE);
如果我不想把一个view的初始化写进xml里(也就是不想通过findviewbyid方法新建一个view),还有什么办法?
好吧。。事情是这样的。。这个mainactivity已经有了一个view了,我只是希望在这个view的上面覆盖几个textview,这要怎么做到? 展开
5个回答
展开全部
你现在是把它创建出来了,但是没有加到activity上,让它显示到哪儿呢。
最简单的操作是调用setContentView(textView), 这样,这一整个Acitivty就只显示这个TextView了,但实际开发中肯定不这么干。
一般是把一个View加到一个Layout上。每一个Layout比如Linerlayout什么的,都是一个GroupView,都有一个addView(View)的方式。
如果你一整个Activity都不想用find。。。那就初始一个Layout 加到 Ac上,加给layout 加view
public void onCreate(Buddle c) {
super.onCreate(c)
LinearLyaout layout = new LinearLayout(this);
setContentView(layout);
TextView tv = new TextView(this);
.......你的那堆代码
layout.addView(tv);
}
最简单的操作是调用setContentView(textView), 这样,这一整个Acitivty就只显示这个TextView了,但实际开发中肯定不这么干。
一般是把一个View加到一个Layout上。每一个Layout比如Linerlayout什么的,都是一个GroupView,都有一个addView(View)的方式。
如果你一整个Activity都不想用find。。。那就初始一个Layout 加到 Ac上,加给layout 加view
public void onCreate(Buddle c) {
super.onCreate(c)
LinearLyaout layout = new LinearLayout(this);
setContentView(layout);
TextView tv = new TextView(this);
.......你的那堆代码
layout.addView(tv);
}
追问
问题有了补充
展开全部
先说明你上面的代码:
你是实例化了 TextView 类,并没有将它加载到页面上去,所以肯定是不会在界面上显示出来的。
其实你的问题就是希望能在后台生成一个 textview,而不是在xml 里面写一个,这个简单,看代码:
LinearLayout linearLayout=new LinearLayout(Show.this); //创建一个布局管理器
TextView tv=new TextView(Show.this); //创建一个 textview
tv.setText("这是一个新的textview "); //设置textview 的 内容
LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(
ViewGroup.LayoutParams.WRAP_CONTENT,
ViewGroup.LayoutParams.WRAP_CONTENT);
linearLayout.addView(tv,lp);
这样就可以创建一个textview 了。
你是实例化了 TextView 类,并没有将它加载到页面上去,所以肯定是不会在界面上显示出来的。
其实你的问题就是希望能在后台生成一个 textview,而不是在xml 里面写一个,这个简单,看代码:
LinearLayout linearLayout=new LinearLayout(Show.this); //创建一个布局管理器
TextView tv=new TextView(Show.this); //创建一个 textview
tv.setText("这是一个新的textview "); //设置textview 的 内容
LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(
ViewGroup.LayoutParams.WRAP_CONTENT,
ViewGroup.LayoutParams.WRAP_CONTENT);
linearLayout.addView(tv,lp);
这样就可以创建一个textview 了。
更多追问追答
追问
问题有了补充
追答
没有太明白你的意思,我可以理解为:你是要改变原有的 view 中的某些textview 吗?
如果是这样,那自然是用 findviewbyid 的方式了。
或者你可以这样,当你做某个操作的时候,你设置你要覆盖的textview 为 setVisibility(xxx.GONE);
然后用我上面说的方式,将你的新的textview 加入到view中去,只需要改变上面的代码中 LinearLayout.LayoutParams lp = xxx.getLayoutParams(); 就可以了
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
有两种方式初始化textView:
在xml布局中有textView ; textView=(TextView)findViewById(R.id.xxx);
代码控制:
LinearLayout linearLayout=new LinearLayout(Show.this);
TextView tv=new TextView(Show.this);LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(
ViewGroup.LayoutParams.WRAP_CONTENT,
ViewGroup.LayoutParams.WRAP_CONTENT);
linearLayout.addView(tv,layoutParams );
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
很简单,new一个textview,用addView把这个textview加进去
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
用setContentView(textView);代替setContentView(R.layout.布局);
追问
问题有了补充
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询