Android 对表布局中的多行重复使用同一按钮

Android 对表布局中的多行重复使用同一按钮,android,android-layout,android-button,Android,Android Layout,Android Button,我有一个包含3行的表格布局,每行有一个角色名称、当前属性和一个用于重新滚动角色属性的按钮 像这样: Malarku s:10 i:15 c:5 [Re-Roll] Zipak s:17 i:3 c:22 [Re-Roll] Ambra s:6 i:24 c:7 [Re-Roll] 我的问题是按钮,因为它附带了一个id,如下所示: <Button android:id="@+id/ButtonRollStats" android:layout_w

我有一个包含3行的表格布局,每行有一个角色名称、当前属性和一个用于重新滚动角色属性的按钮

像这样:

Malarku   s:10 i:15 c:5  [Re-Roll]
Zipak     s:17 i:3 c:22  [Re-Roll]
Ambra     s:6 i:24 c:7   [Re-Roll]
我的问题是按钮,因为它附带了一个id,如下所示:

<Button
    android:id="@+id/ButtonRollStats"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="@string/button_rollStats"
    android:tag="@string/char1_name" />
因此,我不能在每个表行中使用相同的按钮ID,但我需要ID来查找它,并且我不想在每个按钮都执行相同的操作(滚动统计)时对它们使用不同的ID和方法


我如何回避这个问题?

你必须做这两件事中的一件。您可以通过3个不同的
id
找到它们,然后只需使它们的所有单击侦听器相同即可。简单的方法是让您的类实现
视图。OnClickListener
,然后将所有侦听器设置为
this
@Vucko谢谢…我的类已经在使用View.OnClickListener了。但我仍然需要得到按钮的ID。使用“this”将如何工作?谢谢当类实现该接口时,可以将其设置为
rollStats.setOnClickListener(this)
的参数,如下所示。只需对所有按钮执行此操作,就不会有太多代码重复。这只是一种不同的方法。我无法理解这个问题,你能详细说明一下吗@skyeboniwell我知道。因此,通过它们唯一的ID找到所有3个按钮,然后像我展示的那样设置侦听器。
Button rollStats = (Button) findViewById(R.id.ButtonRollStats);
rollStats.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {
        AddStatsView(view);
    }
});

public void AddStatsView(View view) {
    Intent intent = new Intent(this, DisplayStatsView.class);
    String tag = view.getTag().toString();
    intent.putExtra(EXTRA_NAME, tag);
    startActivity(intent);
}