在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);
}
}
非常感谢我用_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); } _ –