2017-05-30 11 views
0

私はリストビューを使用してアイテムを表示します。アイテムが変更されたときに、私は、アダプタのリストを更新し、notifyDataSetChanged()を呼び出す:私のListViewは複数の項目が表示されますが、そのリストに新しい項目が正しく表示されませんので、これが邪魔に動作しているようAndroid ListViewが正しく更新されない

MyAdapter adapter = (MyAdapter) myListView.getAdapter(); 
if(adapter == null) { 
    adapter = new MyAdapter(this, itemList); 
    myListView.setAdapter(adapter); 
} 
adapter.notifyDataSetChanged(); 

これらの項目には情報はありません。アダプターがこれらの新しい項目のために更新されなかったようです。

アダプタは、この(簡体字)のようになります。私はあなたがしようとしているときにデータがアダプタに渡されていないと思いますあなたのListView

adapter.notifyDataSetChanged(); 
listView.invalidate(); 
+0

コンソールをよく確認してください。データが正しく取得されているかどうか。それが正しい場合は、アイテムのサイズを確認してください。 – sivaprakash

+0

データは正常です。 –

+0

おそらく、データはarraylistに渡されません。あなたはadapter.notifyItemInserted(arraylistsize)を試しました – sivaprakash

答えて

0

通知データセットが変更されました。あなたはあなたのarraylistにデータを追加しているクラスコード全体を投稿できますか? もう1つのことは、ビューのためにアダプタで "ViewHolder"クラスを使用しようとします。

+0

いいえ、動作しませんでした。 'invalidate()'も 'invalidateViews()'も –

+0

あなたはソースコード – sasikumar

0

を無効

public View getView(int position, View convertView, ViewGroup parent) { 
    Point point = getItem(position); 
    if (convertView == null) 
     convertView = LayoutInflater.from(getContext()).inflate(R.layout.item_point, parent, false); 

    TextView firstLine = (TextView) convertView.findViewById(R.id.firstLine); 
    firstLine.setText(point.getNumber()); 
} 

enter image description here

0

問題が見つかりました。

Adapter.getView()機能の早期に、更新された項目によって例外が発生しました。したがって、残りの関数は呼び出されず、コンテンツを空白のままにしました。

解決策は、アダプタのリストを更新するだけでなく、アダプタが必要とするすべての必要な追加データを更新することです。

+0

を投稿できますか? – lelloman

関連する問題