2012-01-05 1 views
-3

私はリストビュー用のアダプタを持っていて、.add行に達するたびにクラッシュし、すでにarratアダプタとテキストビューなどを設定しています。なぜクラッシュしますか?なぜadapter.addがクラッシュするのですか?

+0

それは何でクラッシュしますか? – fge

+6

コードを投稿する必要があります。 – EboMike

+0

「クラッシュ」の意味を詳しく説明しますが、例外はありますか? – Guillaume

答えて

2

コードを入力せずに何が間違っているかを確認することは非常に困難です。

次のリンクは、リストビューhttp://developer.android.com/resources/tutorials/views/hello-listview.htmlの設定に関するチュートリアルですが、ListActivityを実装しています。

あなたのコードは、その

package my.test; 

import java.util.ArrayList; 
import android.app.Activity; 
import android.os.Bundle; 
import android.widget.ArrayAdapter; 
import android.widget.ListView; 

public class MyActivity extends Activity { 
    ListView lvList; // the listview 
    ArrayAdapter<String> adapter; // the adapter responsible for the rendering 
    ArrayList<String> listItems = new ArrayList<String>(); // the list of items 
    String myString = "Text to add"; // the text to add 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 

     lvList = (ListView) findViewById(R.id.mylistview); 
     adapter = new ArrayAdapter<String>(this, 
       android.R.layout.simple_list_item_1, listItems); 
     lvList.setAdapter(adapter); 

      //add the text to the list of items 
     listItems.add(myString); 

      //tell the adapter that the list have change and the 
      //rendering should be refreshed 
     adapter.notifyDataSetChanged(); 
    } 
} 

のようになります唯一の活動は実際に私が与えた例では、文字列のためですが、あなたは整数またはあなたが作成した任意のクラスのためにそれを行うことができます実装した場合。

2

私はあなたのような同様の問題、古いアンドロイドバージョンと古いデバイスとの負荷より多くのデータを持っていた...と私は最初

objAdapter.addAll(loadMoreArray)を追加しています。

objAdapter.notifyDataSetChanged()を呼び出します。

しかし、これは良い解決策ではありませんでした。オブジェクトアダプターに新しいデータリストを追加すると、古いデバイスクラッシュアプ​​リです。しかし解決策は、新しいリストに新しいデータをロードし、古いリストに新しいデータリストを追加することでした。

arrayListOfData.addAll(newArrayListOfData);

objAdapter.notifyDataSetChanged()を呼び出します。私が助けた

希望...

関連する問題