2011-07-05 14 views
0

Dialogbundle of dataで作成しています。これはすべて正しく動作します。 私はbuttonsの番号をクリックすると、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,value1およびvalue2の値を再定義しています。ただこれに合わせてコードを変更し、問題を解決するには

// 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

関連する問題