2014-01-13 2 views
-1

Привет Я работаю над заполнением ListView с помощью arraylist в Android после нажатия на кнопку, чтобы перейти от первого экрана ко второму. Но после нажатия на первый экран появляется следующая ошибка. Любая помощь действительно ценится.ошибка списка андроидов при переходе с одного экрана на другой

second_activity.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" > 

<ListView 
android:id="@+id/listDisplayData" 
android:layout_width="match_parent" 
android:layout_height="wrap_content" > 
</ListView> 

SecondActivity.java

пакет com.example.listexample;

import java.util.ArrayList; 

import android.app.Activity; 
import android.content.Intent; 
import android.os.Bundle; 
import android.widget.ArrayAdapter; 
import android.widget.ListView; 

public class SecondActivity extends Activity { 

ListView listDisplayData; 

    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.second_activity); 

     //reference to listview 
     ListView listDisplayData = (ListView)findViewById(R.id.listDisplayData); 

     final ArrayList<String> arr = new ArrayList<String>(); 
     arr.add("name"); 
     arr.add("address"); 

     final ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, 
        android.R.layout.list_content, arr); 

     listDisplayData.setAdapter(adapter); 
}; 
} 

Ошибка:

01-13 16:11:37.028: E/AndroidRuntime(1188): FATAL EXCEPTION: main 
01-13 16:11:37.028: E/AndroidRuntime(1188): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.listexample/com.example.listexample.DisplayData}: java.lang.RuntimeException: Your content must have a ListView whose id attribute is 'android.R.id.list' 
01-13 16:11:37.028: E/AndroidRuntime(1188):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2180) 
01-13 16:11:37.028: E/AndroidRuntime(1188):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2230) 
01-13 16:11:37.028: E/AndroidRuntime(1188):  at android.app.ActivityThread.access$600(ActivityThread.java:141) 
01-13 16:11:37.028: E/AndroidRuntime(1188):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1234) 
01-13 16:11:37.028: E/AndroidRuntime(1188):  at android.os.Handler.dispatchMessage(Handler.java:99) 
01-13 16:11:37.028: E/AndroidRuntime(1188):  at android.os.Looper.loop(Looper.java:137) 
01-13 16:11:37.028: E/AndroidRuntime(1188):  at android.app.ActivityThread.main(ActivityThread.java:5039) 
01-13 16:11:37.028: E/AndroidRuntime(1188):  at java.lang.reflect.Method.invokeNative(Native Method) 
01-13 16:11:37.028: E/AndroidRuntime(1188):  at java.lang.reflect.Method.invoke(Method.java:511) 
01-13 16:11:37.028: E/AndroidRuntime(1188):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793) 
01-13 16:11:37.028: E/AndroidRuntime(1188):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560) 
01-13 16:11:37.028: E/AndroidRuntime(1188):  at dalvik.system.NativeStart.main(Native Method) 
01-13 16:11:37.028: E/AndroidRuntime(1188): Caused by: java.lang.RuntimeException: Your content must have a ListView whose id attribute is 'android.R.id.list' 
01-13 16:11:37.028: E/AndroidRuntime(1188):  at android.app.ListActivity.onContentChanged(ListActivity.java:243) 
01-13 16:11:37.028: E/AndroidRuntime(1188):  at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:273) 
01-13 16:11:37.028: E/AndroidRuntime(1188):  at android.app.Activity.setContentView(Activity.java:1881) 
01-13 16:11:37.028: E/AndroidRuntime(1188):  at com.example.listexample.DisplayData.onCreate(DisplayData.java:26) 
01-13 16:11:37.028: E/AndroidRuntime(1188):  at android.app.Activity.performCreate(Activity.java:5104) 
01-13 16:11:37.028: E/AndroidRuntime(1188):  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1080) 
01-13 16:11:37.028: E/AndroidRuntime(1188):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2144) 
01-13 16:11:37.028: E/AndroidRuntime(1188):  ... 11 more 

Если больше деталей требуется, пожалуйста, дайте мне знать.

+0

Что вы не понимаете? 'В вашем контенте должен быть ListView с атрибутом id 'android.R.id.list'' – njzk2

+0

также, пожалуйста, прочтите свою ошибку. он находится на DisplayData, а не на SecondActivity ... – njzk2

+0

У вас есть другое действие, которое расширяет ListView, но не имеет android.R.id.list как id! Ваша вторая активность прекрасна –

ответ

0

Я думаю, что ошибка была просто показана в сообщении об ошибке.

Your content must have a ListView whose id attribute is 'android.R.id.list' 

Переименуйте идентификатор вашего ListView, как это,

<ListView android:id="@android:id/list" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content"/> 

Проверить this answer для получения дополнительной информации

1

The Exception говорит вам, что ваши ListView потребности иметь android.R.id.list как идентификатор. Это обычно происходит, если вы создаете свой собственный макет для ListActivity или ListFragment. Для обоих из них требуется, чтобы у вас есть ListView с этим идентификатором, чтобы вы могли использовать методы удобства, предоставляемые каждым из этих классов, среди прочего.

Категория: Exception Код: DisplayData Класс не SecondActivity. Я абсолютно уверен, что вы используете либо ListFragment, либо ListActivity.

Смежные вопросы