私は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()を呼び出すことです。
これを正しく行うにはどうすればよいですか? (とうまくいけば私のクラッシュを修正;-))。
よろしく バート
MenuListActivityクラスを変更して、MenuListAdapterをメンバー変数として使用し、クラッシュが停止したように見えます。 –