Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android OnClick插入片段,而不创建成吨的OnClick侦听器_Android_Android Fragments_Onclick - Fatal编程技术网

Android OnClick插入片段,而不创建成吨的OnClick侦听器

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

如何处理片段中的OnClick方法,而不为每个按钮生成大量OnClick侦听器,然后为它们生成一个巨大的switch语句。例如,我的布局中有10个复选框,我希望片段以相同的方式处理它们(具有相同的OnClick)

首先,您的问题是ambigue。你想知道什么还不是100%清楚

如果我理解正确,您不需要10个独立的侦听器,而只需要1个

然后你会得到:

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,而我希望片段能够处理它。