2012-01-12 9 views
0

私はAndroidプログラミングには初めてですが、一般的なプログラミングやJavaではプログラミングを始めません。私の質問は、主にベストプラクティスです。AndroidがListViewのアクティビティに更新されました

リスト内のメニュー項目を表示し、クリックすると別のアクティビティを開始するListActivityを拡張するMenuListActivityクラスを作成しました。各メニューはMenuListActivityクラスの子クラスで、メニュー項目を作成するためのgetMenuItems()メソッドを実装しています。

私のonCreate()メソッドでは、getMenuItems()を呼び出して、ListActivityのListViewのアダプタとして設定されているMenuListAdapterクラスを作成します。

しかし、「アダプタの内容は変更されましたが、ListViewは通知を受け取りませんでした」というillegalStateExceptionが表示されることがあります。時々起こるのではなく、時々起こることに注意してください。私は実際には、アダプタは、このように設定され、他のスレッドでは、アダプタには触れないでください:私は考えることができる

protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

    ArrayList<MenuAdapterItem> menuItems = getMenuItems(); 
    this.setListAdapter(new MenuAdapter(this, menuItems)); 
} 

別の可能性は、アダプタのメンバ変数を作成し、各アップデートにnotifyDataSetChanged()を呼び出すことです。

これを正しく行うにはどうすればよいですか? (とうまくいけば私のクラッシュを修正;-))。

よろしく バート

+0

MenuListActivityクラスを変更して、MenuListAdapterをメンバー変数として使用し、クラッシュが停止したように見えます。 –

答えて

0

私は前にこの問題に遭遇したと私は使用される "setNotifyOnChange(真の);"助けてくれることを望む。

関連する問題