知道在 Android 中单击了哪个按钮
Knowing which button was clicked in Android
我正在制作一个应用程序,它将在同一布局上包含 81 个按钮。它们都被称为我创建的对象 "Tile"。问题是这些图块存储在一个数组中,所以我需要知道以 int 格式单击了哪个按钮才能调用图块( tiles[??]
)。我正在使用 onClick(View v)
方法。我也试过这个:
Log.i("Tile", v.getId() + "was clicked")
它在 logcat 中给我的结果是一个非常长的整数。
那么我怎么知道在数字格式中点击了哪个按钮呢? casual id (R.id.tile1
) 和这个长整数之间的关系是什么,因为它已经是一个数字了?
PS: 我知道我可以用Switch给每个id分配一个整数,但是因为它们是81,这会浪费时间并且会使代码变得很复杂。
希望您能使用标签选项。您可以通过 view.setTag(1) 为视图设置标签,然后在点击事件中您可以使用 view.getTag() 取回标签集。
在android中我们可以使用按钮的id在点击监听器中获取点击事件。
假设你有 5 个按钮:
确保您的 Activity/Fragment 实施 OnClickListener
// 在 OnCreate
Button mClickButton1 = (Button)findViewById(R.id.clickButton1);
mClickButton1.setOnClickListener(this);
Button mClickButton2 = (Button)findViewById(R.id.clickButton2);
mClickButton2.setOnClickListener(this);
Button mClickButton3 = (Button)findViewById(R.id.clickButton3);
mClickButton3.setOnClickListener(this);
Button mClickButton4 = (Button)findViewById(R.id.clickButton4);
mClickButton4.setOnClickListener(this);
Button mClickButton5 = (Button)findViewById(R.id.clickButton5);
mClickButton5.setOnClickListener(this);</br>
//之后你将覆盖 OnClickListener 的 onclick 方法
public void onClick(View v) {
switch (v.getId()) {
case R.id.clickButton1: {
// do something for button 1 click
break;
}
case R.id.clickButton2: {
// do something for button 2 click
break;
}
//.... etc
}
}
您可以使用button.setTag(position) 将位置设置为标签。
当调用 onclick 时获取该标记值。
public void onclick(View v){
int position = Integer.parseInt(v.getTag().toString());
}
我正在制作一个应用程序,它将在同一布局上包含 81 个按钮。它们都被称为我创建的对象 "Tile"。问题是这些图块存储在一个数组中,所以我需要知道以 int 格式单击了哪个按钮才能调用图块( tiles[??]
)。我正在使用 onClick(View v)
方法。我也试过这个:
Log.i("Tile", v.getId() + "was clicked")
它在 logcat 中给我的结果是一个非常长的整数。
那么我怎么知道在数字格式中点击了哪个按钮呢? casual id (R.id.tile1
) 和这个长整数之间的关系是什么,因为它已经是一个数字了?
PS: 我知道我可以用Switch给每个id分配一个整数,但是因为它们是81,这会浪费时间并且会使代码变得很复杂。
希望您能使用标签选项。您可以通过 view.setTag(1) 为视图设置标签,然后在点击事件中您可以使用 view.getTag() 取回标签集。
在android中我们可以使用按钮的id在点击监听器中获取点击事件。
假设你有 5 个按钮:
确保您的 Activity/Fragment 实施 OnClickListener
// 在 OnCreate
Button mClickButton1 = (Button)findViewById(R.id.clickButton1);
mClickButton1.setOnClickListener(this);
Button mClickButton2 = (Button)findViewById(R.id.clickButton2);
mClickButton2.setOnClickListener(this);
Button mClickButton3 = (Button)findViewById(R.id.clickButton3);
mClickButton3.setOnClickListener(this);
Button mClickButton4 = (Button)findViewById(R.id.clickButton4);
mClickButton4.setOnClickListener(this);
Button mClickButton5 = (Button)findViewById(R.id.clickButton5);
mClickButton5.setOnClickListener(this);</br>
//之后你将覆盖 OnClickListener 的 onclick 方法
public void onClick(View v) {
switch (v.getId()) {
case R.id.clickButton1: {
// do something for button 1 click
break;
}
case R.id.clickButton2: {
// do something for button 2 click
break;
}
//.... etc
}
}
您可以使用button.setTag(position) 将位置设置为标签。
当调用 onclick 时获取该标记值。
public void onclick(View v){
int position = Integer.parseInt(v.getTag().toString());
}