2

ユーザーがオプションのいずれかをクリックすると、「あなたの答えは正しい」、「あなたの答えは間違っています」などの適切なメッセージが表示されるという点で、クイズベースのアプリを開発しています。

 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!!");
    }

どんな助けもかなりのものです。

4

2 に答える 2

5

なぜ使わないのですか

Toast.makeText(getApplicationContext(), "Your message", Toast.LENGTH_SHORT).show();

コードに記述した内容は、 This toast was never created using Toast.makeText()というエラーを返します。したがって、この方法を使用することをお勧めします。

カスタム トースト メッセージを使用する場合、コードで行っていないことが 1 つ必要です。toast objectを作成したら、 setView(your inflated layout object)を使用してビューをその toast に設定する必要があります。最後にtoast.show()を呼び出す必要があります。ただし、膨張したレイアウトを取得してsetView()に渡す必要があることを忘れないでください。

カスタムトーストの詳細については、このリンクを参照してください

于 2012-04-10T05:01:15.543 に答える
4
v.getTag()

setTag(object)あなたのコードには何も見つかりません。

ビューにTag()を設定すると、同じビューのgetTag()を取得できるのはあなただけです。

Log.d("ERR", v.getTag().toString());

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

表示する前にここにエラーが表示されますToast

トーストを表示するには、あなたも行方不明ですtoast.show()

于 2012-04-10T04:59:08.140 に答える