2011-07-05 114 views
0

我正在查看創建Dialogbundle of data。這一切正常工作。 我點擊數buttons打開dialog與數據,然後可以更新。將正確的信息傳遞給Dialog

麻煩我有沒有關係,我按捆綁哪個按鈕只是最後一行的數據。任何關於將每個按鈕傳遞給Dialog的正確數據的想法。

我在想下設置ID爲每個視圖的線,我通過循環,但不知道該如何調用再次

代碼:

for (int i = 0; i < nameInfo.size(); i++) { 
      // creating the views 
      View viewItem = (View) inflater.inflate(R.layout.view_item, null); 
      nameView = (TextView) viewItem.findViewById(R.id.title); 
      nameView.setId(i); 
      value1View = (TextView) viewItem.findViewById(R.id.value1); 
      value1View.setId(i); 
      value2View = (TextView) viewItem.findViewById(R.id.value2); 
      value2View.setId(i); 

      updateButton = (Button) sightmarkView.findViewById(R.id.updatebutton); 
      updateButton.setId(i); 
      // Getting the values 
      nameValue = nameInfo.get(i).toString(); 
      value1 = db.getvalue1('1', nameInfo.get(i).toString()); 
      value2 = db.getvalue2('2', nameInfo.get(i).toString()); 
      // update fields 
      nameView.setText(nameValue); 
      value1View.setText(String.valueOf(value1)); 
      value2View.setText(String.valueOf(value2)); 

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


        int updateButtonId = updateButton.getId(); 

           bundle = new Bundle(); 
           bundle.putString("name", nameValue); 
          bundle.putFloat("value1", value1); 
           bundle.putFloat("value2", value2); 

           showDialog(SIGHTMARK_DIALOG_ID, bundle); 

       } 
      }); 
     pMainlayout.addView(viewItem); 
} 

感謝您的時間

回答

0

在每個循環中(來自for),您正在重新定義值nameValue,value1value2

要解決這個問題,只要改變你的代碼以符合本:

// Getting the values 
final String nameValue = nameInfo.get(i).toString(); 
final String value1 = db.getvalue1('1', nameInfo.get(i).toString()); 
final String value2 = db.getvalue2('2', nameInfo.get(i).toString()); 
+0

選中此http://stackoverflow.com/questions/609609/creating-final-variables-inside-a-loop/609611 #609611 – OcuS