String[] names = Config.names;
i = 0;
for (String name : names)
{
i++;
Button button = new Button(this);
button.setText(name);
button.setBackgroundResource(R.drawable.button);
button.setOnClickListener(new Button.OnClickListener()
{ @Override
public void onClick(View arg0)
{
// TODO Auto-generated method stub
Intent intent = new Intent(Main.this,
Other.class);
myApp.setI(i);
startActivity(intent);
}

});
layout.addView(button);
}
如上。根据Config.names来动态创建按钮。
myApp是继承Application的一个类,用于在两个activity中传递变量。
但出错了。。请问怎么解决?
谢谢

解决方案 »

  1.   

    你是按钮得不到监听呢还是两个Activity传值的时候传错了?如果是按钮得不到监听,你那个监听器就不要用Button.OnClickListener(),直接改成:new OnClickListener()或者你这个类直接实现OnClickListener接口,这样Button就可以得到监听了
    注意:OnClickListener是android.view.View.OnClickListener;另外,如果你是传值问题,那么你这个就是用到了JavaBean的方式来传递数据的,在Android中,如果用JavaBean的方式来传递数据时,这个Bean必须得实现Serializable接口,然后用:intent.putExtra(key, value);方式传递这个Bean,在另一个Activity中用intent.getSerializableExtra(name);方法获取这个Bean
      

  2.   


    log没什么东西。如楼上所说,传的值是11然后就抛出异常。
      

  3.   

    这个代码有问题啊,点击取I的值,不能这么取的,循环完毕以后i的值绝对一直是11,你试一下设置Button的Tag=i,然后在点击事件里面取v.getTag(),然后传过去。
    这个原理是循环给不同的Button设置不同的TAG,然后根据你点击的Button取得它对应的TAG值