Android 给出空指针错误的导航抽屉列表视图

Android 给出空指针错误的导航抽屉列表视图,android,android-layout,nullpointerexception,actionbarsherlock,navigation-drawer,Android,Android Layout,Nullpointerexception,Actionbarsherlock,Navigation Drawer,我得到空指针异常错误,我无法找出错误在哪里。有人能指出吗?该布局具有查看寻呼机、导航抽屉和操作栏sherlock中的选项卡。一切都正常工作,直到我从只包含textview的简单列表stock android layout更改为使用抽屉自定义布局 @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.userpag

我得到空指针异常错误,我无法找出错误在哪里。有人能指出吗?该布局具有查看寻呼机、导航抽屉和操作栏sherlock中的选项卡。一切都正常工作,直到我从只包含textview的简单列表stock android layout更改为使用抽屉自定义布局

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

    //Getting reference to the DrawerLayout
    mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);

    mDrawerList = (ListView) findViewById(R.id.drawer_list);
    mDrawerList.setOnItemClickListener(new SlideMenuClickListener());

    sqlHandler_nav_drawer = new SqlHandler_nav_drawer(getBaseContext());
    contactList = new ArrayList<ContactListItems>(); 
    contactList.clear(); 

    Calendar c = Calendar.getInstance();
    SimpleDateFormat dateformat = new SimpleDateFormat("dd-MM-yyyy");
    SimpleDateFormat timeformat = new SimpleDateFormat("HH:mm:ss");
    String date = dateformat.format(c.getTime());
    String time = timeformat.format(c.getTime());

    Log.d("MSG", "HERE HERE");
    String s = "Notification";
    String query2 = "INSERT INTO tbl_nickname(time,msg,date) values ('"+ time + "','" + s + "','" + date + "')"; 
    sqlHandler_nav_drawer.executeQuery(query2);
    sqlHandler_nav_drawer.sqlDatabase.close();

    String query = "SELECT * FROM tbl_nickname"; 
    Cursor c1 = sqlHandler_nav_drawer.selectQuery(query); 

    if (c1 != null && c1.getCount() != 0) { 
        if (c1.moveToFirst()) { 
            do { 
                ContactListItems contactListItems = new ContactListItems(); 

                contactListItems.setmsg(c1.getString(c1.getColumnIndex("msg"))); 

                contactList.add(contactListItems); 

            } while (c1.moveToNext()); 
        }  
    }   
        c1.close(); 
        contactListAdapter_nav_drawer = new ContactListAdapter_nav_drawer(getBaseContext(), contactList); 
        mDrawerList.setAdapter(contactListAdapter_nav_drawer);

你应该考虑一个人的年龄。试试下面的方法


从sqlite db获取数据时,不要使用BaseAdapter,而是使用SimpleCursorAdapter

一切都很好,我刚刚将inflater.inflatefile更改为另一个xml文件,但它随后开始出现此错误!删除该自定义适配器并使用SimpleCursorAdapter,相信我,它会更好solution@user3025833确定你充气的布局正确。看起来getView正在返回nullyes,它的listview\u nav\u drawer\u膨胀,即使我使用android.R.layout.simple\u list\u item\u 1,我仍然会得到相同的错误@用户3025833在getView中注释所有内容。只需充气并返回convertView即可。看看你是否仍然收到相同的错误抱歉,我已经修复了错误。这是因为我的一个片段的列表视图。我忘了更改textview的名称。但是这个名字已经不存在了。想知道为什么eclipse从未提醒我R.id.xx不存在@user3025833它可能在另一个布局中。您的任何问题都已解决,您是否使用了视图支架??
public class ContactListAdapter_nav_drawer extends BaseAdapter { 

Context context; 
ArrayList<ContactListItems> contactList; 

public ContactListAdapter_nav_drawer(Context context, ArrayList<ContactListItems> list) { 
this.context = context; 
contactList = list; 
} 

@Override
public int getCount() { 
return contactList.size(); 
} 

@Override
public Object getItem(int position) { 
return contactList.get(position); 
} 

@Override
public long getItemId(int position) { 
return position; 
} 

@Override
public View getView(int position, View convertView, ViewGroup arg2) { 

ContactListItems contactListItems = contactList.get(position); 

if (convertView == null) { 
    LayoutInflater inflater = (LayoutInflater) context
            .getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
    convertView = inflater.inflate(R.layout.listview_nav_drawer_inflate, null); 
} 

//TextView tv_time = (TextView) convertView.findViewById(R.id.tv_time); 
//tv_time.setText(contactListItems.gettime()); 

TextView tv_msg = (TextView) convertView.findViewById(R.id.msg_nav_drawer); 
tv_msg.setText(contactListItems.getmsg()); 

//TextView tv_date = (TextView) convertView.findViewById(R.id.tv_date); 
//tv_date.setText(contactListItems.getdate()); 
return convertView; 

} 

}
<?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/msg_nav_drawer"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="TextView" />

</LinearLayout>
01-26 16:31:05.208: E/AndroidRuntime(21731): FATAL EXCEPTION: main
01-26 16:31:05.208: E/AndroidRuntime(21731): java.lang.NullPointerException
01-26 16:31:05.208: E/AndroidRuntime(21731):    at android.widget.ArrayAdapter.createViewFromResource(ArrayAdapter.java:392)
01-26 16:31:05.208: E/AndroidRuntime(21731):    at android.widget.ArrayAdapter.getView(ArrayAdapter.java:362)
01-26 16:31:05.208: E/AndroidRuntime(21731):    at android.widget.AbsListView.obtainView(AbsListView.java:2040)
01-26 16:31:05.208: E/AndroidRuntime(21731):    at android.widget.ListView.makeAndAddView(ListView.java:1772)
01-26 16:31:05.208: E/AndroidRuntime(21731):    at android.widget.ListView.fillDown(ListView.java:672)
01-26 16:31:05.208: E/AndroidRuntime(21731):    at android.widget.ListView.fillFromTop(ListView.java:732)
01-26 16:31:05.208: E/AndroidRuntime(21731):    at android.widget.ListView.layoutChildren(ListView.java:1625)
01-26 16:31:05.208: E/AndroidRuntime(21731):    at android.widget.AbsListView.onLayout(AbsListView.java:1870)
01-26 16:31:05.208: E/AndroidRuntime(21731):    at android.view.View.layout(View.java:11418)
01-26 16:31:05.208: E/AndroidRuntime(21731):    at android.view.ViewGroup.layout(ViewGroup.java:4328)
01-26 16:31:05.208: E/AndroidRuntime(21731):    at android.widget.RelativeLayout.onLayout(RelativeLayout.java:930)
01-26 16:31:05.208: E/AndroidRuntime(21731):    at android.view.View.layout(View.java:11418)
01-26 16:31:05.208: E/AndroidRuntime(21731):    at android.view.ViewGroup.layout(ViewGroup.java:4328)
01-26 16:31:05.208: E/AndroidRuntime(21731):    at android.widget.FrameLayout.onLayout(FrameLayout.java:443)
01-26 16:31:05.208: E/AndroidRuntime(21731):    at android.view.View.layout(View.java:11418)
01-26 16:31:05.208: E/AndroidRuntime(21731):    at android.view.ViewGroup.layout(ViewGroup.java:4328)
01-26 16:31:05.208: E/AndroidRuntime(21731):    at android.support.v4.view.ViewPager.onLayout(ViewPager.java:1589)
01-26 16:31:05.208: E/AndroidRuntime(21731):    at android.view.View.layout(View.java:11418)
01-26 16:31:05.208: E/AndroidRuntime(21731):    at android.view.ViewGroup.layout(ViewGroup.java:4328)
01-26 16:31:05.208: E/AndroidRuntime(21731):    at android.support.v4.widget.DrawerLayout.onLayout(DrawerLayout.java:690)
01-26 16:31:05.208: E/AndroidRuntime(21731):    at android.view.View.layout(View.java:11418)
01-26 16:31:05.208: E/AndroidRuntime(21731):    at android.view.ViewGroup.layout(ViewGroup.java:4328)
01-26 16:31:05.208: E/AndroidRuntime(21731):    at android.widget.FrameLayout.onLayout(FrameLayout.java:443)
01-26 16:31:05.208: E/AndroidRuntime(21731):    at android.view.View.layout(View.java:11418)
01-26 16:31:05.208: E/AndroidRuntime(21731):    at android.view.ViewGroup.layout(ViewGroup.java:4328)
01-26 16:31:05.208: E/AndroidRuntime(21731):    at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1652)
01-26 16:31:05.208: E/AndroidRuntime(21731):    at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1510)
01-26 16:31:05.208: E/AndroidRuntime(21731):    at android.widget.LinearLayout.onLayout(LinearLayout.java:1415)
01-26 16:31:05.208: E/AndroidRuntime(21731):    at android.view.View.layout(View.java:11418)
01-26 16:31:05.208: E/AndroidRuntime(21731):    at android.view.ViewGroup.layout(ViewGroup.java:4328)
01-26 16:31:05.208: E/AndroidRuntime(21731):    at android.widget.FrameLayout.onLayout(FrameLayout.java:443)
01-26 16:31:05.208: E/AndroidRuntime(21731):    at android.view.View.layout(View.java:11418)
01-26 16:31:05.208: E/AndroidRuntime(21731):    at android.view.ViewGroup.layout(ViewGroup.java:4328)
01-26 16:31:05.208: E/AndroidRuntime(21731):    at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1489)
01-26 16:31:05.208: E/AndroidRuntime(21731):    at android.view.ViewRootImpl.handleMessage(ViewRootImpl.java:2442)
01-26 16:31:05.208: E/AndroidRuntime(21731):    at android.os.Handler.dispatchMessage(Handler.java:99)
01-26 16:31:05.208: E/AndroidRuntime(21731):    at android.os.Looper.loop(Looper.java:137)
01-26 16:31:05.208: E/AndroidRuntime(21731):    at android.app.ActivityThread.main(ActivityThread.java:4441)
01-26 16:31:05.208: E/AndroidRuntime(21731):    at java.lang.reflect.Method.invokeNative(Native Method)
01-26 16:31:05.208: E/AndroidRuntime(21731):    at java.lang.reflect.Method.invoke(Method.java:511)
01-26 16:31:05.208: E/AndroidRuntime(21731):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
01-26 16:31:05.208: E/AndroidRuntime(21731):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
01-26 16:31:05.208: E/AndroidRuntime(21731):    at dalvik.system.NativeStart.main(Native Method)
01-26 16:31:06.988: I/Process(21731): Sending signal. PID: 21731 SIG: 9
@Override
public View getView(int position, View convertView, ViewGroup arg2) { 

ContactListItems contactListItems = contactList.get(position); 
ViewHolder holder;
if (convertView == null) { 
    LayoutInflater inflater = (LayoutInflater) context
            .getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
    convertView = inflater.inflate(R.layout.listview_nav_drawer_inflate,arg2,false); 
    holder= new ViewHolder();
    holder.tv_msg = (TextView) convertView.findViewById(R.id.msg_nav_drawer); 
    convertView.setTag(holder);  
}else{
     holder= (ViewHolder)convertView.getTag(); 
}  
tv_msg.setText(contactListItems.getmsg()); 
return convertView; 

} 
static class ViewHolder
{
     TextView tv_msg;
}