1

我的一个活动中有一个动态生成的按钮列表,我想知道如何让其中一个按钮在单击时打开另一个活动并根据单击列表中的哪个按钮显示文本。

我使用 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”底部的数组中,但我不确定如何使用它。

谢谢你的帮助。

4

1 回答 1

0

添加时,您必须为每个按钮添加一个 onclicklistener。然后在onclick事件中,就可以调用startActivity你当前Activity的方法了。当您创建将打开新活动的 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);
    }    
}
于 2012-09-20T14:24:05.557 回答