android 控件数组定义和使用问题

我是初学者,对android的编码规范实在是一知半解。现在想自定义一组Button,在循环中为各个button添加一些属性,然后将button添加到当前唯一的layout... 我是初学者,对android的编码规范实在是一知半解。
现在想自定义一组Button,在循环中为各个button添加一些属性,然后将button添加到当前唯一的layout中去显示。
代码如下,编辑器没有报语法错误,但在模拟器中无法运行。求解!

public class MainActivity extends Activity {

Button[] bv;
RelativeLayout bk;
int i;
@SuppressLint("NewApi")
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
bk=(RelativeLayout)findViewById(R.id.bk);

bv=new Button[10];
for (i=0;i<10;i++){
bv[i] = null;

bv[i].setWidth(120);
bv[i].setHeight(30);
bv[i].setBackgroundColor(0xff0000ff);
bv[i].setTextColor(0xffff0000);
bv[i].setText("hello");
bk.addView(bv[i]);
}

}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}
展开
 我来答
lmdy2001
推荐于2017-11-26 · TA获得超过592个赞
知道小有建树答主
回答量:491
采纳率:0%
帮助的人:159万
展开全部
bv=new Button[10];
你只是创建了一个数组用来存放10个Button.
但是你没有对其中的Button初始化
bv[i] = null;改成bv[i] = new Button(this);就可以了
唯夜TGBUS
2014-03-05 · TA获得超过568个赞
知道小有建树答主
回答量:124
采纳率:0%
帮助的人:140万
展开全部
  1. RelativeLayout需要设置控件的margin,建议把你的bk改为linearlayout试试。

  2. 还有如果不是通过布局添加控件setWidth和setHeight是不管用的,使用View.setLayoutParams设置控件大小。

希望能够帮到你!

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
莫说me
2014-03-05 · TA获得超过453个赞
知道小有建树答主
回答量:237
采纳率:100%
帮助的人:37.7万
展开全部
模拟器上不可以,真机可以吗,还有啊,不知道是不是布局的原因,个人建议可以将RelativeLayout改为linearLayout
追问
改linearlayout了,也在真机上试了,真机是android4.2.1,也不行啊。
追答
直接不显示还是显示空白界面啊,如果是空白界面的话应该是你的添加方式不对。
添加布局有2种方式,一种是通过在xml文件定义layout,另一种方式是在java代码中动态生成布局文件。这是在网上找到的,希望能帮到你http://www.myexception.cn/android/1439721.html
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式