2014-04-11 20 views
9

Bu öğretici http://windrealm.org/tutorials/android/android-listview.php "Basit Bir Android ListView Örneği"java.lang.IllegalStateException: ArrayAdapter bir TextView'un

çalıştı Ama Eclipse benim testte ben robot uygulamada kazasında ettik olmasını kaynak kimliği gerektirir. LogCat yılında

Bunu ettik:

04-11 20:17:24.170: E/AndroidRuntime(7062): 
java.lang.IllegalStateException: ArrayAdapter requires the resource ID 
to be a TextView 

Neden kazan mı? simplerow.xml Remo

java sınıf

private ListView mainListView; 
private ArrayAdapter<String> listAdapter; 

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

     mainListView = (ListView) findViewById(R.id.mainListView); 

     String[] xRemote = Remote.split(";"); 

     ArrayList<String> planetList = new ArrayList<String>(); 

     planetList.addAll(Arrays.asList(xRemote)); 

     listAdapter = new ArrayAdapter<String>(this, R.layout.simplerow, 
       planetList); 

     listAdapter.addAll(xRemote); 

     mainListView.setAdapter(listAdapter); 

mains.xml

<?xml version="1.0" encoding="utf-8"?> 

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
     android:orientation="vertical" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent"> 

     <ListView android:layout_width="fill_parent" 
      android:layout_height="fill_parent" 
      android:id="@+id/mainListView"> 
     </ListView  
    </LinearLayout> 

simplerow.xml

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="vertical" > 

    <TextView 
     android:id="@+id/rowTextView" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:padding="10dp" 
     android:textSize="16sp" > 
    </TextView> 

</LinearLayout> 

cevap

24

Kullanım

listAdapter = new ArrayAdapter<String>(this, R.layout.simplerow, 
    R.id.rowTextView, planetList); 

documentation diyor kök olarak TextView kullanın: Varsayılan olarak

bu sınıf beklediğini şartıyla kaynak kimliği referansları tek TextView'un. Daha karmaşık bir düzen kullanmak isterseniz, alan kimliği de alan yapıcılarını kullanın. Bu alan kimliği , daha büyük düzen kaynağında bir TextView referansı olmalıdır.

1

LinearLayout ettik ve doğrudan

İlgili konular