Android:按钮点击时出现吐司

时间:2011-11-20 14:02:07

标签: android button toast

我对Android很新,只是熟悉常见的东西,但我无法掌握onClickListner();我基本上有两个复选框和一个按钮,然后在按钮上单击一个吐司应显示并说明哪些复选框已选中,哪些不是。

public class ExActivity extends Activity implements View.OnClickListener {
    CheckBox cb;
    CheckBox cb2;
    Button buton;

    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        cb=(CheckBox) findViewById(R.id.cb);
        cb2=(CheckBox) findViewById(R.id.checkbox);
        buton = (Button)findViewById(R.id.buton);
        buton.setOnClickListener(this);
    }

    public void onClick(View arg0) {
        Toast toast;
        if(cb.isChecked()&&cb2.isChecked()) toast = Toast.makeText(getApplicationContext(), "Amandoua sunt bifate", Toast.LENGTH_SHORT);
        else if(cb.isChecked()&&!cb2.isChecked()) toast = Toast.makeText(getApplicationContext(), "Doar prima e bifata", Toast.LENGTH_SHORT);
        else if(!cb.isChecked()&&cb2.isChecked()) toast = Toast.makeText(getApplicationContext(), "Doar a doua e bifata", Toast.LENGTH_SHORT);
        else if(!cb.isChecked()&&!cb2.isChecked()) toast = Toast.makeText(getApplicationContext(), "Nici una nu e bifata", Toast.LENGTH_SHORT);
    }
}

忽略罗马尼亚变量名称和文本,XML就可以了。 我也尝试像这样添加onClick():

buton.setOnClickListener(new OnClickListener() {
    public void onClick(View v) {
        // my code;
    }
});

但这个更糟糕。帮助

5 个答案:

答案 0 :(得分:6)

两种方式都是正确的。在我看来,你最后并没有表现出祝酒。 这看起来像onClick还没有被执行。

添加

if(toast != null) {
    toast.show();
}

到你的onClick()方法的结尾应该可以做到这一点 (如果你没有创建一个toast实例,因为之前没有匹配任何条件,则进行空检查)

答案 1 :(得分:4)

您需要致电show()以显示吐司:

Toast.makeText(getApplicationContext(), "text", Toast.LENGTH_SHORT).show();

答案 2 :(得分:1)

你只是忘了在.makeText(上下文,文本,持续时间)之后添加.show()

所以你的代码应该是这样的:

[...]
if(cb.isChecked()&&cb2.isChecked()) toast = Toast.makeText(getApplicationContext(), "Amandoua sunt bifate", Toast.LENGTH_SHORT).show();
    else if(cb.isChecked()&&!cb2.isChecked()) toast = Toast.makeText(getApplicationContext(), "Doar prima e bifata", Toast.LENGTH_SHORT).show();
    else if(!cb.isChecked()&&cb2.isChecked()) toast = Toast.makeText(getApplicationContext(), "Doar a doua e bifata", Toast.LENGTH_SHORT).show();
    else if(!cb.isChecked()&&!cb2.isChecked()) toast = Toast.makeText(getApplicationContext(), "Nici una nu e bifata", Toast.LENGTH_SHORT).show();
[...]

答案 3 :(得分:1)

以前的答案是正确的,告诉你不要调用Toast的show()方法。 您还可以查看此tutorial,了解如何在XML中为按钮定义处理程序方法。这样代码看起来会更清晰,因为您不必显式实现onClickListener接口,或者将新的onClickListener设置为按钮(它在幕后完成)。这是一个简单的例子(您可以使用“showToast”方法轻松补充系统打印):

xml中的

按钮定义:

      <Button
    android:id="@+id/button"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:padding="10dp"
    android:text="Click Me"
    android:onClick="buttonHandler" />

活动类

public class TwoCheckboxesActivity extends Activity {

    private CheckBox check1;
    private CheckBox check2;
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        check1 = (CheckBox)findViewById(R.id.checkbox1);
        check2 = (CheckBox)findViewById(R.id.checkbox2);

    }

    public void buttonHandler(View view) { 
        System.out.println("Button Clicked"); 

        System.out.println(check1.isChecked());
        System.out.println(check2.isChecked()); 
    }
}

答案 4 :(得分:0)

在您的java资源中添加它

  public void toast(View v) {
  Toast.makeText(MainActivity.this, "Hey I'm a toast messsage",         
          Toast.LENGTH_LONG).show();

}

然后这段代码用于添加按钮并实现它以在XML资源中显示toast消息。

<Button
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Toast Button"
    android:id="@+id/button"
    android:layout_centerVertical="true"
    android:layout_centerHorizontal="true"
    android:onClick="toast" />

希望这有帮助。 快乐编码