Android:如何获得额外的onClickListener与Switch语句进行通信?

时间:2016-02-02 00:30:20

标签: android onclick switch-statement onclicklistener

我正在开发一个带有多选组件问题的应用。

到目前为止,我已经使用Switch语句将三个不同的问题显示为TextViews,并将其选择为Buttons。

像这样:

public void onClick (View v)
{
    switch (v.getId()) {
        case R.id.firstOption:
            mainQuestion.setText("Mexico’s capital is");
            answerOne.setText("Monterrey");
            answerTwo.setText("Cancun");
            answerThree.setText("Mexico City");
            answerFour.setText("Acapulco");
            break;
        case R.id.secondOption:
            mainQuestion.setText("Canada’s capital is");
            answerOne.setText("Vancouver");
            answerTwo.setText("Edmonton");
            answerThree.setText("Toronto");
            answerFour.setText("Ottawa");
            break;
        case R.id.thirdOption:
            mainQuestion.setText("Spain’s current currency is the");
            answerOne.setText("Yen");
            answerTwo.setText("Euro");
            answerThree.setText("Pound");
            answerFour.setText("Dollar");
            break;
    }

}

我无法弄清楚当用户按下Button进行选择时如何处理。

如何让它与每个案件进行沟通?

我已尝试创建一个额外的onClickListener,但我无法让它工作,所以我回到原点。

你能帮助我吗?

谢谢。

1 个答案:

答案 0 :(得分:0)

首先,按钮只能侦听点击事件。 OnClickListener回调中的onclick方法与您使用的全局onClick(View v)相同。如果要添加更多操作,可以考虑使用OnLongClickListener。你在那里看到的东西看起来很好,你已经定义了当用户做出选择时你想要发生什么。

此外,您可能希望为按钮的容器和textview提供一个id,并在容器上调用onclick(View v)方法,以便按钮可以执行不同的操作,当然这将基于用户选择什么。

您可以使用布尔值来检查容器是否已被单击,因此当布尔值为true时,按钮可以执行操作,否则会被禁用,如果您知道我的意思。希望这有帮助。