2011-07-27 23 views
0

私はSMSを送信し、BroadCastRecieverからデータが解析され、モデル属性に設定されているモデルクラスにデータを送ります。モデルクラスには、BaseListに設定されたArrayListを返すメソッドがありますか?ListViewはMVCモデルから更新されていません

私の問題は、最初にメニューを起動してからSMSを送信し、上記のようにする必要があります。リストビューは更新されませんが、メニューを再度クリックするとリストビューのみが表示されます。 何を私は間違っているので、私はメニューを2回発射する必要があり、リストビューは更新されていますか?

提案がありますか?

答えて

0

このソリューションは、私の仕事:

yourAdapterObject =新しいMyAdapter(getApplicationContext()、ArrayListの); listView.setAdapter(yourAdapterObject); listView.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE); ((MyAdapter)yourAdapterObject).notifyDataSetChanged();

0

BaseAdapterの更新時に、新しいデータが設定されていることがリストにわからないようです。そのような場合は、データが空でない場合はデータを設定するアダプタのnotifyDataSetChanged()を呼び出すか、データが空の場合はnotifyDataSetInvalidated()を呼び出す必要があります。

+0

私はMVCモデルに従っています。したがって、データ・モデルは、1つのパッケージ内で異なるパッケージおよびアクティビティーにあります。私は、キーワードappleと一緒にSMSを送る。 broadcastrecieverは、1 = Apple = My Apple = 2 = Apple = Your's Appleの形式で文字列を受け取ります。この情報はモデルクラスに渡され、ArrayListを解析して返します。、そして、私はこうします:apppleInfo = getArrayList ; appleAdapter = new AppleAdapter(getApplicationContext()、appleInfo);リストビュー.setAdapter(appleAdapter); appleAdapter.notifyDataSetChanged(); – Rovin

+0

これは動作します:yourAdapterObject = new MyAdapter(getApplicationContext()、arrayList); \t \t listView.setAdapter(yourAdapterObject); \t \t listView.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE); \t \t((MyAdapter)yourAdapterObject).notifyDataSetChanged(); – Rovin

関連する問題