首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >显示toast消息

显示toast消息
EN

Stack Overflow用户
提问于 2012-04-10 12:56:28
回答 2查看 318关注 0票数 2

我正在开发一个基于测验的应用程序,当用户点击任何选项时,它应该是一个合适的消息,如“您的ans是正确的”,“您的ans是错误的”.What我想要的是

代码语言:javascript
复制
 1. how to display that sort of messages ?or is it the only way to display such msgs ?
 2. If the user clicks wrong option the it should show the correct answer as well as the msg

here is what i have done so far but its not working giving force close!!!


public void onClick(View v) 
    {
        // TODO Auto-generated method stub
        switch (v.getId()) 
        {
        case R.id.button1:
            Log.d("ERR", v.getTag().toString());
            if (v.getTag().toString().equalsIgnoreCase("right")) 
            {
                displayAnswer();

            }
            else
            {
                errorAnswer();

            }

            break;
        case R.id.button2:
            Log.d("ERR", v.getTag().toString());
            if (v.getTag().toString().equalsIgnoreCase("right")) 
            {
                displayAnswer();
            }
            else
            {
                errorAnswer();

            }
            break;

        case R.id.button3:
            Log.d("ERR", v.getTag().toString());
            if (v.getTag().toString().equalsIgnoreCase("right")) 
            {
                displayAnswer();
            }
            else
            {
                errorAnswer();

            }
            break;

        case R.id.button4:
            Log.d("ERR", v.getTag().toString());
            if (v.getTag().toString().equalsIgnoreCase("right")) 
            {
                displayAnswer();
            }
            else
            {
                errorAnswer();


            }
            break;

        case R.id.btn_next:
//          lyt_ans.setVisibility(View.GONE);
//          lyt_quest.setVisibility(View.VISIBLE);
            prev = counter;
            counter += 1;

            if (counter >= SIZE) 
            {
                Collections.shuffle(quizIndexList);
                counter = 0;
            }
            getInfoFromDB(quizIndexList.get(counter));
            reLoad();

            break;

        case R.id.btn_bck:
                getInfoFromDB(quizIndexList.get(prev));
                    reLoad();
//          counter --;




        }
    }

    private void errorAnswer() 
    {
        Toast toast = new Toast(getApplicationContext());
        toast.setDuration(SIZE);
        toast.setGravity(Gravity.CENTER, 0, 0);
        toast.setText("your answer is wrong");
        // TODO Auto-generated method stub

    }

    private void displayAnswer() {

        // TODO Auto-generated method stub
        lyt_quest = (LinearLayout) findViewById(R.id.lyt_quest);
        lyt_ans = (LinearLayout) findViewById(R.id.lyt_ans);
        lyt_quest.setVisibility(View.VISIBLE);
        lyt_ans.setVisibility(View.VISIBLE);
//      TextView txt1 = null;
        Toast toast = new Toast(getApplicationContext());
        toast.setDuration(SIZE);
        toast.setGravity(Gravity.CENTER, 0, 0);
        toast.setText("Your answer is correct!!");
    }

任何帮助都是值得欣赏的。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-04-10 13:01:16

你为什么不用

代码语言:javascript
复制
Toast.makeText(getApplicationContext(), "Your message", Toast.LENGTH_SHORT).show();

您在代码中编写的代码将显示一个错误,说明这个toast从未使用Toast.makeText()创建过。所以你最好使用这种方法。

如果你想使用自定义的toast消息,那么有一件事是必须的,那就是你在代码中没有做的事情。在创建toast对象之后,您必须使用setView(您的膨胀布局对象)将视图设置为该toast。最后,您必须调用toast.show()。但请记住,您必须获得放大的布局并将其传递给setView()

有关自定义吐司的更多信息,请参阅this link

票数 5
EN

Stack Overflow用户

发布于 2012-04-10 12:59:08

代码语言:javascript
复制
v.getTag()

我在您的代码中找不到任何setTag(object)

一旦您对视图执行setTag()操作,则只有您可以对同一视图执行getTag()操作。

代码语言:javascript
复制
Log.d("ERR", v.getTag().toString());

if (v.getTag().toString().equalsIgnoreCase("right"))

在您显示Toast之前,这里将出现错误

您也错过了查看Toast toast.show()的方法

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10083271

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档