致:显示java.lang.NullPointerException:尝试调用虚拟方法无效......在一个空对象引用 [英] caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void ... on a null object reference

查看:1022
本文介绍了致:显示java.lang.NullPointerException:尝试调用虚拟方法无效......在一个空对象引用的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在这里浏览一些问题的堆栈溢出,但它并没有解决我的问题。

I browse on some question here in stack overflow but it didn't solve my problem.

这是我的code。

   public class MenuListActivity extends ListActivity {
String MenuNames[] = {"Consultation", "Medicine", "Diseases", "Doctor"};
protected void onCreateView(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_menu_list);
    ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, MenuNames);
    final ListView lv = (ListView) findViewById(R.id.listView1);

    lv.setAdapter(adapter);

    lv.setOnItemClickListener(new OnItemClickListener() {
        public void onItemClick(AdapterView<?> parent, View v,
                int position, long id) {

            if(position == 1) {
                //code specific to first list item    
                Intent myIntent = new Intent(v.getContext(), ConsultationActivity.class);
                startActivity(myIntent);
            }


        }

    }
     );

}

logcat中。

Logcat.

    10-12 10:53:37.572: E/AndroidRuntime(10605): FATAL EXCEPTION: main
    10-12 10:53:37.572: E/AndroidRuntime(10605): Process: com.capstone.medicinehealthguide, PID:     10605
    10-12 10:53:37.572: E/AndroidRuntime(10605): java.lang.RuntimeException: Unable to start activity      ComponentInfo{com.capstone.medicinehealthguide/com.capstone.medicinehealthguide.MenuListActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'android.view.View android.view.View.findViewById(int)' on a null object reference
    10-12 10:53:37.572: E/AndroidRuntime(10605):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2255)
    10-12 10:53:37.572: E/AndroidRuntime(10605):    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2317)
    10-12 10:53:37.572: E/AndroidRuntime(10605):    at android.app.ActivityThread.access$800(ActivityThread.java:143)
    10-12 10:53:37.572: E/AndroidRuntime(10605):    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1258)
    10-12 10:53:37.572: E/AndroidRuntime(10605):    at android.os.Handler.dispatchMessage(Handler.java:102)
    10-12 10:53:37.572: E/AndroidRuntime(10605):    at android.os.Looper.loop(Looper.java:135)
    10-12 10:53:37.572: E/AndroidRuntime(10605):    at android.app.ActivityThread.main(ActivityThread.java:5070)
    10-12 10:53:37.572: E/AndroidRuntime(10605):    at java.lang.reflect.Method.invoke(Native Method)
    10-12 10:53:37.572: E/AndroidRuntime(10605):    at java.lang.reflect.Method.invoke(Method.java:372)
    10-12 10:53:37.572: E/AndroidRuntime(10605):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:836)
    10-12 10:53:37.572: E/AndroidRuntime(10605):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:631)
    10-12 10:53:37.572: E/AndroidRuntime(10605): Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'android.view.View android.view.View.findViewById(int)' on a null object reference
    10-12 10:53:37.572: E/AndroidRuntime(10605):    at com.capstone.medicinehealthguide.MenuListActivity.onCreate(MenuListActivity.java:24)
    10-12 10:53:37.572: E/AndroidRuntime(10605):    at android.app.Activity.performCreate(Activity.java:5720)
    10-12 10:53:37.572: E/AndroidRuntime(10605):    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1102)
    10-12 10:53:37.572: E/AndroidRuntime(10605):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2208)
    10-12 10:53:37.572: E/AndroidRuntime(10605):    ... 10 more

XML文件

    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.capstone.medicinehealthguide.MenuListActivity" >

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

</ListView>

我试图使具有列表视图的应用程序,当你点击它,另一个活动将开放

I'm trying to make an app that has a listview and when you click on it, another activities will be open

推荐答案

您实际上是利用这个错误:

You are actually using this wrong:

final ListView lv = (ListView) getListView().findViewById(R.id.listView1);

下面:

final ListView lv = (ListView) findViewById(R.id.listView1);

问题是,在你的,你所得到的列表视图,然后试图从列表视图列表视图。

The issue is that in yours, you are getting the list view, and then trying to get your list view from a list view.

上面的尝试只是从你的内容视图列表视图中选择。

Try the option above to just get the list view from your content view.

这篇关于致:显示java.lang.NullPointerException:尝试调用虚拟方法无效......在一个空对象引用的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆