在android中使用动态创建的按钮将用户带到具有动态生成内容的另一个活动

问题描述:

我有一个动态生成的活动中的按钮列表,我想知道如何获得这些按钮之一,点击,打开另一个活动,并根据点击列表中的哪个按钮显示文本。在android中使用动态创建的按钮将用户带到具有动态生成内容的另一个活动

我生成使用for循环的按钮(我已经与在所述循环为便于阅读TextViews中省略细节,但是也可用于其他地方定义一些变量)

for (int i = 0; i < N; i++) { 

     // create a new Button 
     final Button rowButton = new Button(this); 

     // Set properties of rowButton 
     rowButton.setText("See Recipe"); 
     rowButton.setId(RecipeArray.get(i));    

     // add the Button to the LinearLayout 
     myLinearLayout.addView(rowButton); 

     // save a reference to the Button for later 
     myButtons[i] = rowButton; 
    } 

按钮代表一定的配方和当点击时,他们应该将用户带到一个新的活动“HowToMake”,并生成一个仅包含与该配方有关的信息的文本视图。它们存储在代码片段“myButtons [i] = rowButton”底部的数组中,但我不知道如何使用它。

感谢您的任何帮助。

您必须在添加onclicklistener时添加每个按钮。然后在onclick事件中,您可以调用当前Activity的startActivity方法。当您创建将打开新活动的Intent时,您可以添加“额外”(换句话说,您可以添加一些额外的数据,这些数据将被传递到新活动中)。新的数据,如要打开:)

例配方的ID(未经测试,但应该是沿着正确的线):

rowButton.setTag("the unique ID by which you can read back your recipe"); 
rowButton.setOnClickListener(new OnClickListener() {   
    @Override 
    public void onClick(View v) { 
     Intent intent = new Intent(YourActivity.this, TheViewRecipeClass.class); 
     intent.putExtra("id", v.getTag()); 
     startActivity(intent); 
    }  
} 
+1

非常感谢我用_Public无效的onClick(查看v){ \t Bundle b = new Bundle(); \t b.putInt(“RECIPE”,v.getId()); \t Intent intent = new Intent(RecipeList.this,HowToMake.class); \t intent.putExtras(b); \t startActivity(intent); } _ –