2016-12-18 128 views
1

我想要吐司顯示一個基於數組中的字符串的消息。我有兩個數組和一個listview。當列表視圖中的某個項目被選中時(它是由我的第一個數組中的字符串填充的),我想要一個toast來顯示來自第二個數組的消息。第一個數組中位置爲0的字符串應該對應於第二個數組中位置爲0的字符串。陣列位置決定吐司消息

public class listView_Quiz extends AppCompatActivity { 

ListView listView; 
ArrayAdapter<String> adapterList; 
String [] quizQuestions; 
String [] quizAnswers; 



@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.listview_quiz); 

    listView = (ListView) findViewById(R.id.quizList); 
    quizQuestions = getResources().getStringArray(R.array.quizQuestions); 
    quizAnswers = getResources().getStringArray(R.array.quizToast); 

    adapterList = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, android.R.id.text1, quizQuestions) { 

    listView.setAdapter(adapterList); 

    listView.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
     @Override 
     public void onItemClick(AdapterView<?> parent, View view, int position, long id) {} 

當我使用toString.contains,然後在自己的答案中寫入時,我可以得到它的一半工作。但是我正在尋找在陣列位置將每個陣列中進行檢查的解決方案,如果他們匹配,打印第二陣列消息(應答消息)

if (parent.getItemAtPosition(position).toString().contains("Q1")) { 
       Toast.makeText(getApplicationContext(), "Answer1", Toast.LENGTH_LONG).show(); 
      } 

      else if (parent.getItemAtPosition(position).toString().contains("Q2")) { 
       Toast.makeText(getApplicationContext(), "Answer2", Toast.LENGTH_LONG).show(); 
      } 

作爲一個測試,我也還嘗試了一些下面的迭代。然而,土司永遠不會被顯示

  String i = quizAnswers[0]; 
      String j = quizQuestions[0]; 

      if (parent.getItemAtPosition(position).toString().equals(j)) { 
        Toast.makeText(getApplicationContext(), i, Toast.LENGTH_LONG).show(); 
       } 

差不多,我想要做的是

if (selectedListViewitem(position) == Array2(position)) {Toast message} 

這是可能的嗎?或者我將不得不使用toString.contains(String)?由於

+0

請註明的答案正確關閉的問題。 – birdy

回答

0

嘗試

public void onItemClick(AdapterView<?> parent, View view, int position, long id) { 
     Toast.makeText(getApplicationContext(), quizAnswers[position], Toast.LENGTH_LONG).show(); 
} 

onitemclicks已經給你一個位置

希望它幫助。

+1

我怎麼能忽略這樣一個簡單的答案!感謝您的幫助 – Jediworm

+0

不客氣,請upvote並標記正確的答案 – yanivtwin

0

onItemClick方法已經包含position參數。你可以只取第二陣列String通過position,並用Toast表現出來:

Toast.makeText(listView_Quiz.this, quizAnswers[position], Toast.LENGTH_LONG).show(); 
+0

感謝您的洞察力!它非常完美! – Jediworm