2014-03-25 40 views
0

我找不到问题。在这种情况下,我检查了很多问题,但我无法解决问题。我粘贴了另一个源代码的代码,并且工作正常。这里是代码和XML文件,也许有人可以告诉问题是什么。任何建议?Android。当我将适配器添加到ListView时发生NullPointerException?

public class MainActivity extends Activity { 
MySQLiteHelper db = new MySQLiteHelper(this); 
public String address = new String(); 

private com.example.fdfd.DiscussArrayAdapter adapter; 
public List firstMessages; 




public String messageBody = new String(); 
public String messageDate = new String(); 
public String messageBoolean = new String(); 


@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_discuss); 

    final ListView listview = (ListView) findViewById(R.id.listView); 
    listview.setClickable(true); 

    final ArrayAdapter newAdapter = new ArrayAdapter(this, 
      android.R.layout.simple_list_item_1, firstMessages); 

    listview.setAdapter(newAdapter); 
. 
. 
. 

我的XML:

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

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

</RelativeLayout> 

我的logcat:

03-25 16:01:03.890: E/Trace(7819): error opening trace file: No such file or directory (2) 
03-25 16:01:04.480: W/dalvikvm(7819): threadid=1: thread exiting with uncaught exception (group=0x413f5450) 
03-25 16:01:04.490: E/AndroidRuntime(7819): FATAL EXCEPTION: main 
03-25 16:01:04.490: E/AndroidRuntime(7819): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.fdfd/com.example.fdfd.MainActivity}: java.lang.NullPointerException 
03-25 16:01:04.490: E/AndroidRuntime(7819):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2065) 
03-25 16:01:04.490: E/AndroidRuntime(7819):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2090) 
03-25 16:01:04.490: E/AndroidRuntime(7819):  at android.app.ActivityThread.access$600(ActivityThread.java:136) 
03-25 16:01:04.490: E/AndroidRuntime(7819):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1201) 
03-25 16:01:04.490: E/AndroidRuntime(7819):  at android.os.Handler.dispatchMessage(Handler.java:99) 
03-25 16:01:04.490: E/AndroidRuntime(7819):  at android.os.Looper.loop(Looper.java:137) 
03-25 16:01:04.490: E/AndroidRuntime(7819):  at android.app.ActivityThread.main(ActivityThread.java:4802) 
03-25 16:01:04.490: E/AndroidRuntime(7819):  at java.lang.reflect.Method.invokeNative(Native Method) 
03-25 16:01:04.490: E/AndroidRuntime(7819):  at java.lang.reflect.Method.invoke(Method.java:511) 
03-25 16:01:04.490: E/AndroidRuntime(7819):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:813) 
03-25 16:01:04.490: E/AndroidRuntime(7819):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:580) 
03-25 16:01:04.490: E/AndroidRuntime(7819):  at dalvik.system.NativeStart.main(Native Method) 
03-25 16:01:04.490: E/AndroidRuntime(7819): Caused by: java.lang.NullPointerException 
03-25 16:01:04.490: E/AndroidRuntime(7819):  at android.widget.ArrayAdapter.getCount(ArrayAdapter.java:330) 
03-25 16:01:04.490: E/AndroidRuntime(7819):  at android.widget.ListView.setAdapter(ListView.java:460) 
03-25 16:01:04.490: E/AndroidRuntime(7819):  at com.example.fdfd.MainActivity.onCreate(MainActivity.java:64) 
03-25 16:01:04.490: E/AndroidRuntime(7819):  at android.app.Activity.performCreate(Activity.java:5013) 
03-25 16:01:04.490: E/AndroidRuntime(7819):  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1079) 
03-25 16:01:04.490: E/AndroidRuntime(7819):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2029) 
03-25 16:01:04.490: E/AndroidRuntime(7819):  ... 11 more 
+0

public List firstMessages;是null cuz你得到了nullpointer的豁免 –

回答

1

你永远不会初始化firstMessages,因此它是空的。 尝试改变以下部分

public List firstMessages; 

public List firstMessages = new ArrayList(); 
0

您的名单,firstMessages,为空并且正在生成NullPointerException异常。当连接到ListView时,将调用getCount(),然后调用Collection上的size()

0

的ArrayAdapter的作用是一个ListView的每个项目有一个布局和数据相关联。

ArrayAdapter的数据有问题,它们从未初始化过。然后,您不能将列表视图的项目与数据关联或在布局上显示项目。

相关问题