在有些app中,有些布局是不断变化的,如:有些新闻客户端上面的标题,我们可以根据自己的喜欢添加自己感兴趣的栏目。这时候,标题的布局就不能再布局文件中添加,添加以后再修改就比较困难。在代码中添加控件就比较灵活,实现如下:
我们可以给标题栏设置成线性布局,在代码给布局添加Textview,
if (cursor1.getCount()!=0){//从数据库中得到要设置的标题的名称 line1.removeAllViews();//Linearlayout上的控件每次变化都要清空后再从新加载,否则会重复加载 List<String> list=new ArrayList<>(); while (cursor1.moveToNext()){ list.add(cursor1.getString(cursor1.getColumnIndex("name"))); } tv1=new TextView[list.size()];//TextView控件的数组 for (int i = 0; i <list.size(); i++) { tv1[i]=new TextView(this);//初始化Textview控件,否则会包空指针错误 tv1[i].setText(list.get(i)); tv1[i].setId(i);//设置id tv1[i].setClickable(true); tv1[i].setTextSize(20); tv1[i].setTextColor(Color.rgb(0,0,0)); tv1[i].setPaddingRelative(15,0,0,0);//设置Textview的位置距离右侧距离为15 line1.addView(tv1[i]);//将Textview控件加载到布局中 tv1[i].setOnClickListener(new View.OnClickListener() {//给Textview设置点击事件 @Override public void onClick(View v) {
本来想在style中设置一个样式给Textview的,参考:
http://stackoverflow.com/questions/11723881/android-set-view-style-programatically/28613069#28613069
但里面的方法都用不成,不知道谁有什么方法没有。