Android 对表布局中的多行重复使用同一按钮
我有一个包含3行的表格布局,每行有一个角色名称、当前属性和一个用于重新滚动角色属性的按钮 像这样: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
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);
}