Android OnClick插入片段,而不创建成吨的OnClick侦听器
如何处理片段中的OnClick方法,而不为每个按钮生成大量OnClick侦听器,然后为它们生成一个巨大的switch语句。例如,我的布局中有10个复选框,我希望片段以相同的方式处理它们(具有相同的OnClick)首先,您的问题是ambigue。你想知道什么还不是100%清楚 如果我理解正确,您不需要10个独立的侦听器,而只需要1个 然后你会得到:Android OnClick插入片段,而不创建成吨的OnClick侦听器,android,android-fragments,onclick,Android,Android Fragments,Onclick,如何处理片段中的OnClick方法,而不为每个按钮生成大量OnClick侦听器,然后为它们生成一个巨大的switch语句。例如,我的布局中有10个复选框,我希望片段以相同的方式处理它们(具有相同的OnClick)首先,您的问题是ambigue。你想知道什么还不是100%清楚 如果我理解正确,您不需要10个独立的侦听器,而只需要1个 然后你会得到: public class Main2Activity extends AppCompatActivity implements View.OnClic
public class Main2Activity extends AppCompatActivity implements View.OnClickListener{
private Button button01;
private Button button02;
private Button button03;
private Button button04;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main2);
button01 = (Button) findViewById(R.id.button01);
button02 = (Button) findViewById(R.id.button02);
button03 = (Button) findViewById(R.id.button03);
button04 = (Button) findViewById(R.id.button04);
button01.setOnClickListener(this);
button02.setOnClickListener(this);
button03.setOnClickListener(this);
button04.setOnClickListener(this);
}
@Override
public void onClick(View view) {
if (view == button01) {
// button01 clicked
} else if (view == button02) {
// button02 clicked
} else if (view == button03) {
// button03 clicked
} else if (view == button04) {
// button4 clicked
}
}
}
这就是你要找的吗?很简单。如果你想以同样的方式处理它们,就这样做吧
View.OnClickListener listener = new View.OnClickListener()
{
@Override
public void onClick(View v)
{
Toast.makeText(MainActivity.this,"asdasd",Toast.LENGTH_SHORT).show();
}
};
item1.setOnClickListener(listener);
item2.setOnClickListener(listener);
item3.setOnClickListener(listener);
如果是复选框的话,签出带有RadioButton的RadioGroup几乎是一样的,但你只能选中其中一个。如果你需要检查更多,你需要创建监听器。即使你创建了一个内部有监听器的小部件,实际上你仍然创建了“吨”的监听器。我有点困惑,对不起,我是android新手。你能再详细解释一下吗?我希望我的片段能够处理OnClick这仍然让活动处理我的复选框OnClick,而我希望片段能够处理它。