我有两个标签的活动。 第一个有一个按钮。如果按此按钮,将在第二个选项卡中创建一个包含3个视图(ImageView,TextView,Button)的tablerow
当我按下这个按钮(我们刚刚创建的按钮)但我不知道如何引用它时,我想开始一个新的活动。
注意:可能有infinites tableRows。
谢谢!
TableRow tr = new TableRow(this);
ImageView view = new ImageView(this);
TextView view2 = new TextView(this);
Button view3 = new Button (this);
view.setImageBitmap(thumbnail);
view.setPadding(1, 5, 0, 0);
view.setScaleType(ImageView.ScaleType.CENTER_INSIDE);
Calendar c = Calendar.getInstance();
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd");
view2.setText("" + et.getText() + dateFormat.format(c.getTime()) );
view2.setGravity(Gravity.CENTER_HORIZONTAL);
view2.setGravity(Gravity.CENTER_VERTICAL);
view3.setGravity(Gravity.RIGHT);
view3.setGravity(Gravity.CENTER_VERTICAL);
DisplayMetrics metrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metrics);
tr.addView(view, metrics.widthPixels/3, 150);
tr.addView(view2, metrics.widthPixels/2, 100);
tr.addView(view3, metrics.widthPixels/6, 20);
tl.addView(tr);
答案 0 :(得分:2)
创建按钮时,您可以参考它;只需像添加任何其他按钮一样添加一个OnClickListener:
Button view3 = new Button(this);
view3.setOnClickListener(new OnClickListener() {
public void onClick() {
// do stuff
}
});
答案 1 :(得分:0)
如果您最终得到一个Button列表,那么最简单的方法是使用for for each循环来浏览集合,并在每个循环上调用setOnClickListener方法(使用相同的侦听器实例,或不,取决于你想要的东西):
// Instantiate the listener that will be used by the buttons.
View.OnClickListener clickListener = new View.OnClickListener() {
public void onClick(View v) {
// do something...
}
});
List<Button> buttons = new ArrayList<Button>();
// add button instances to the buttons list
for (Button button : buttons) {
button.setOnClickListener(clickListener);
}
根据作者的评论更新:
快速而脏的实现,其中您为每个按钮实例化其中一个,还有其他许多其他解决方案:
private class RowButtonListener implements View.OnClickListener {
private final Context mContext;
private final String mActivityText;
public RowButtonListener(Context context, String activityText) { // could be cleaner by providing resource id (int) if you use strings.xml
mContext = context;
mActivityText = activityText;
}
public void onClick(View v) {
Intent intent = new Intent(mContext, MyActivity.class);
intent.putExtra(MyActivity.TEXT_KEY, mActivityText);
startActivity(intent);
}
}