2012-04-10 102 views
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!!"); 
    } 

任何幫助是明顯的。

+0

你在哪裏設置視圖V的標籤,即其中U R時的的onClick()按鈕? – Shubhayu 2012-04-10 05:02:54

+0

您需要附加堆棧跟蹤。你需要調用'Toast#show'來顯示吐司。 'Toast#setDuration'只能用'LENGTH_SHORT'或'LENGTH_LONG'調用。 – Qberticus 2012-04-10 05:03:17

+2

@Rithesh:哪裏是toast.show() – 2012-04-10 05:04:41

回答

5

你爲什麼不使用前

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

你在鱈魚裏寫的東西e會給你一個錯誤,說這個烤麪包從來沒有使用Toast.makeText()創建。所以你最好使用這種方法。

如果你想使用自定義敬酒消息,那麼有一點是強制性的,你有沒有在你的代碼做了什麼。創建敬酒對象後,你必須設置的,目的是利用的setView(您膨脹佈局對象)是敬酒。然後你必須最後調用toast.show()。但請記住,你必須得到膨脹的佈局,並將其傳遞到setView()

欲瞭解更多有關自定義吐司看到this link

+0

非常感謝你,它的作品像魅力 – RMH 2012-04-10 05:13:13

+0

k但當用戶點擊錯誤的答案,它應該顯示答案,也應該去下一個問題。我怎樣才能做到這一點?? – RMH 2012-04-10 05:16:22

+0

@Ritheshm在這種情況下將正確答案作爲消息傳遞給吐司。 – 2012-04-10 05:17:57

4
v.getTag() 

我在代碼中找不到任何setTag(object)

一旦你setTag()的觀點,然後再只有你能getTag()同樣的看法。

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

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

錯誤都會來這裏你展示Toast

你也失蹤,查看吐司toast.show()

+0

但我寫的setText知道 – RMH 2012-04-10 05:01:06

+0

如果(v.getTag()。toString()方法。equalsIgnoreCase( 「右」))可能會有問題。 – 2012-04-10 05:03:05

+0

k我明白了,非常感謝你。 – RMH 2012-04-10 10:31:08