Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/332.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/196.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 单击listener可查看我动态创建的Android Studio的多个按钮_Java_Android_Events_Button_Click - Fatal编程技术网

Java 单击listener可查看我动态创建的Android Studio的多个按钮

Java 单击listener可查看我动态创建的Android Studio的多个按钮,java,android,events,button,click,Java,Android,Events,Button,Click,好的,我正在制作一个android应用程序,我有一个目标列表,让我们说一下,让它更容易解释。目标由字符串组成。这些数据将来自数据库,因此在将来,列表的长度可能会稍长或稍短。每个目标都放置在按钮的文本中 我已经做了这个循环来在运行时创建按钮,因为列表的长度根据之前发生的事情而变化,这一切都很完美,我可以创建按钮,并将它们放置在我想要的地方,等等。这是我用来做这件事的代码 for (int i = 0; i < goals.size(); i++){ buttons[i

好的,我正在制作一个android应用程序,我有一个目标列表,让我们说一下,让它更容易解释。目标由字符串组成。这些数据将来自数据库,因此在将来,列表的长度可能会稍长或稍短。每个目标都放置在按钮的文本中

我已经做了这个循环来在运行时创建按钮,因为列表的长度根据之前发生的事情而变化,这一切都很完美,我可以创建按钮,并将它们放置在我想要的地方,等等。这是我用来做这件事的代码

    for (int i = 0; i < goals.size(); i++){
        buttons[i] = new Button(this.getContext());
        buttons[i].setLayoutParams(params);
        buttons[i].setPadding(0,150,0,150);
        buttons[i].setGravity(Gravity.CENTER);
        buttons[i].setText(goals.get(i));
        buttons[i].setBackgroundResource(R.drawable.btn_back);
        buttons[i].setTextSize(30);
        buttons[i].setTransformationMethod(null);
        linear.addView(buttons[i]);
    }
for(int i=0;i
现在我的问题是我想点击每个按钮做一件稍微不同的事情-取决于目标,即按钮的文本。我真的很难设置点击事件,以便不同的按钮可以做不同的事情,即使我已经动态创建了所有按钮

我可以提供更多关于我在android studio中的设置细节,但我觉得我已经对我的问题给出了足够的见解


非常感谢您的帮助。

我的猜测是,如果您已经知道每个按钮的功能应该是什么,那么您是否可以只获取按钮的文本,然后在switch(或其他)中使用它来获得特定的功能,例如:

buttons[i].setOnClickListener(new View.OnClickListener(){

   @Override
   public void onClick(View view){

       //Put whatever is common between buttons outside of the switch

       switch(((Button)view).getText().toString()){

       //And then just assign a case for whatever functionality you need specifically for each goal

       }

   }


});

我最好的猜测是,如果您已经知道每个按钮的功能应该是什么,根据文本,您是否可以只获取按钮的文本,然后在开关(或其他)中使用它来获得特定的功能,例如:

buttons[i].setOnClickListener(new View.OnClickListener(){

   @Override
   public void onClick(View view){

       //Put whatever is common between buttons outside of the switch

       switch(((Button)view).getText().toString()){

       //And then just assign a case for whatever functionality you need specifically for each goal

       }

   }


});

为什么不使用ListVIEW或ReaveReVIEW?我在上面的评论中,你可以考虑使用一些优化并保存所有按钮列表的方法,并且你可以创建一个“点击”侦听器,通过适配器,指定每个项目的行为。为什么不使用ListVIEW或DeviReVIEW?您可以考虑使用优化并保存所有按钮列表的东西,并且可以创建一个“单击”侦听器,通过适配器,指定每个项目的行为。