连续用听众创建文本和按钮?

时间:2011-11-15 18:05:44

标签: android button listener

我会尝试解释我的问题。您可以看到下面的代码尝试添加一些textview和按钮,因为数组来自另一个类。

public class Breakfast extends Activity {

    /** Called when the activity is first created. */
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        Bundle extras = getIntent().getExtras();

        ScrollView sv = new ScrollView(this);
        LinearLayout ll = new LinearLayout(this);
        sv.addView(ll);
        if (extras != null) {

             String food[]=extras.getStringArray("food");       
             String foodCateg[]=extras.getStringArray("foodCateg");

             int K=0;

             for (int i = 0; i < food.length/3; i++) {
                 TextView foodDay = new TextView(this);
                 foodDay.setText("Day "+ (i+1));    
                 ll.addView(foodDay);

                 for (int j=K;j<K+3;j++){
                     Button contfood= new Button(this);
                     contfood.setText(food[j]);
                     ll.addView(contfood);
                 }
                 K=K+3;         
             }
             this.setContentView(sv);
         }
    }

我的问题是如何才能知道屏幕上点击了哪些按钮?因为在点击其中一个(获取之前写过的文本)的情况下,我会做某事或其他事情。


ahhhhhhhhhhhhhhhhh是的我知道怎么做ListActivity。但首先我想手工做,因为我不认为如何简化这个......

感谢您尝试使用listview和OnListItemClick方法构建的答案,但我认为这不是解决方案。

我说过,因为当我插入这一天时(我不会听到所有的代码......)但我做.setgravity .setSize .setbackgroundResource等。当天的食物我使用不同的.setgravity和更多参数。所以我认为使用listview一切都会有相同的规格......这就是我不喜欢的。

所以......知道屏幕上按了什么按钮?

2 个答案:

答案 0 :(得分:1)

您可以使用contfood.setId(i)并从那里开始工作。

但是你在做什么看起来真的想要创建一个ListActivity并使用它OnItemClickListener

答案 1 :(得分:0)

你应该做的是为每个按钮“contfood”添加一个id。然后,当您单击某个按钮时,将返回ID以执行您想要的操作。

另一种方法是创建按钮并附加方法public void onClick(View view):

for (int j=K;j<K+3;j++){
                 Button contfood= new Button(this);
                 contfood.setText(food[j]);
                 ll.addView(contfood);

                public void onClick(View view) {
                    Intent myIntent = new Intent(view.getContext(), xxx.class);
                    startActivityForResult(myIntent, 0);
          }
}

并在方法中添加参数。