2011-07-23 11 views
0

ArrayAdapterを使用するリストビューをリフレッシュする方法については、stackoverflowで検索しましたが、いくつかの解決策が見つかりましたが、これらの解決策のいずれも私のためには機能しませんでした。ArrayAdaperのリストビューをリフレッシュできません。

私はNumberPickerとlistviewを持つインターフェイスを持っています。 numberpickersのボタンを押すと、リストビューが更新されなければならないが、うまくいきません。私はボタンを押すとリストビューはそのデータを更新しませんでしたが、同じデータを保持します...ボタンを押すと、アダプタの1つのパラメータが変更され、アダプタが新しいデータを受信して​​いるため更新する必要があります。 ..

これは私のコードです:

public class Calendar extends Activity { 
    private ListView CalendarList = null; 
    private NumberPicker CalendarPicker = null; 
    private ArrayAdapter MyArrayAdapter = null; 

    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.calendar); 

     CalendarList = (ListView) findViewById(R.id.CalendarList); 
     CalendarPicker = (NumberPicker) findViewById(R.id.CalendarPicker); 

     CalendarPicker.setMaxValue(((MyApplication.NEQUIPOS*2)-2));//el maximo valor alcanzable por el picker es el numero de jornadas de la liga, es decir, ((NEQUIPOS*2)-2) 
     CalendarList.setClickable(false); 
     CalendarList.setFocusable(false); 
     CalendarList.setItemsCanFocus(false); 
     CalendarList.setSelected(false); 
     CalendarList.setEnabled(false); 

     CalendarPicker.increment.setOnClickListener(new OnClickListener() { 
      public void onClick(View v) { 
       CalendarPicker.increment();  
       MyArrayAdapter.notifyDataSetChanged(); 
      } 
     }); 

    } 

    public void onResume() { 
     super.onResume(); 
     CalendarPicker.setValue(MyApplication.RoundNumber); 
     MyArrayAdapter =new ArrayAdapter<String>(this, R.layout.list_item, MyApplication.roundMatches(CalendarPicker.getValue())); 
     MyArrayAdapter.setNotifyOnChange(true); 

     CalendarList.setAdapter(MyArrayAdapter); 
     } 


} 

答えて

1

あなたが新しいデータでアダプタを供給してから呼び出すMyArrayAdapter.notifyDataSetChanged();を呼び出す前MyArrayAdapter.notifyDataSetChanged();

関連する問題