我100 button
中的MainLayout.xml
已超过ID
,我想点击每个。我想对所有按钮进行分组,然后点击群组按钮,获取String
并将其放入Sqlite Databse Table
,然后将其用作我的基本ID,以便从MainClass.java
进行查询。我怎样才能做到这一点?到目前为止,我在public class MainClass extends AppCompatActivity implements View.OnClickListener {
Button B0,B1,B2,B3....;
String baseId;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main_layout);
buttonInitializer();
}
public void buttonInitializer(){
B0 = (Button)findViewById(R.id.B0); B0.setOnClickListener(this);
B1 = (Button)findViewById(R.id.B1); B1.setOnClickListener(this);
...
}
@Override
public void onClick(View v) {
switch (v.getId()){
case R.id.B0:
baseId = "B0";
break;
case R.id.B1:
baseId = "B1";
break;
..........
default:
break;
}
QueryFire(); // Fire a query
}
Public void QueryFire(){
//Fire the query with id of the clicked button
}
}
上有这个。
MainClass.java
RadioButton
正如你可以看到我是否继续这样做,我将有长码,我想缩短我的代码,而不是上面的代码,我想分组按钮,然后听取每次点击就像// Put the button into RelativeLayout or something and use it to group the button
// OnClick of Each Button inside the GroupButton:
// Get the ID of the Clicked Button:
// Put the ID of Button into String:
// and FIRE my query with ID of Button
,但请注意。我不想使用RadioButton。我试图实现这个seudo代码。
=
任何帮助都不胜感激!非常感谢!!!
答案 0 :(得分:1)
您应该能够为xml布局中的每个按钮指定“android:tag”属性的String,以及“android:onclick”属性。这应该消除了对所有findViewById()和setOnClickListener()调用的需要。
然后,在onClick方法中,您可以执行baseId = (String) view.getTag()
答案 1 :(得分:0)
可能有点拉伸,但为什么不使用带自定义适配器的ListView?每个适配器将保持一个按钮(或任何你想要的),每按一次按钮,你将获得id(点击元素的位置)。它在内存上也更容易:)