你现在是把它创建出来了,但是没有加到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);
}
先说明你上面的代码:
你是实例化了 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:
在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.布局);