当按钮被点击时如何制作弹出消息?

7
我正在创建一个问答游戏。在活动中我有三个按钮(选项)和相应的问题。现在我的问题是,当用户选择正确答案时,我想显示Toast消息,Toast消息将在几秒钟后出现,但当用户选择错误答案时,它会再次显示Toast消息。我不知道如何做到这一点。
我已经进行了许多研究和阅读论坛,但似乎我不理解并且它不符合我的需求。请问有人可以帮忙吗?非常感谢!
到目前为止,这是代码。但它不起作用。 请纠正我哪些代码是错误的。非常感谢。
btn1.setOnClickListener(new View.OnClickListener() {
  @Override
  public void onClick(View arg0) {
    // TODO Auto-generated method stub
    Button btn1 = (Button) findViewById(R.id.btnopt1_a);
    btn1.isClickable();
    switch(arg0.getId()){  
      case R.id.btnopt1_a:  
          if(btn1.isPressed()){  
             Toast.makeText(getBaseContext(), "Your answer is correct!" , Toast.LENGTH_SHORT ).show();  
           }  
           else btn1.setText("Your answer is wrong!, The correct answer is: Frog");  
             break;  
           }
      }
    });

该消息显示是因为您总是在按钮点击时显示toast,而从未在代码中检查答案。 - cherry-wave
3个回答

9

要在单击按钮时显示Toast消息,请使用以下代码。如果您想进行一些验证,则在按钮的onclicklistener中使用以下代码:

Button btn1 = (Button) findViewById(R.id.btnopt1_a);
btn1.setOnClickListener(new OnClickListener() { 
    public void onClick(View v)  {
        Toast.makeText(getBaseContext(), "Your answer is correct!" , Toast.LENGTH_SHORT ).show();   
    }
});

4

首先,尝试实现您的Activity OnClickListener。然后,在每次点击时检查条件,您将得到解决方案。

public class Deals extends Activity implements OnClickListener {
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        requestWindowFeature(Window.FEATURE_NO_TITLE);
        setContentView(R.layout.yourxml);
        //declare ur buttons here
    }

    public void onClick(View v) {
        switch (v.getId()) {
            case R.id.menu: {
                // Do your stuff here
                // call method
                if (isright) {
                    Toast.makeText(getBaseContext(), "Your answer is correct!", Toast.LENGTH_SHORT).show();
                } else {
                    Toast.makeText(getBaseContext(), "Your answer wrong!", Toast.LENGTH_SHORT ).show();
                }
            }
        }
    }
}

2

如果您有许多条件需要显示toast,那么最好制作一个可以显示它的方法。

private void showToast(String msg) {
    Toast.makeText(getApplicationContext(), msg, Toast.LENGTH_SHORT).show();
}

onClick()或者任何你想要展示的地方调用上述方法。

 btn1.setOnClickListener(new OnClickListener() {
   public void onClick(View v)  {
       ..................
       ..........................

       case R.id.btnopt1_a:  
           if (btn1.isPressed()) {
               showToast("Your answer is correct!");
           } else {
               showToast("Your answer is wrong!, The correct answer is: Frog");
           }

           break;
       });

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接