2016-11-26 62 views
0

我有一个用户信息列表,其中包含每个列表行中的名称,地址和按钮。点击一行中的按钮,它应该导航到另一个活动。没有错误。但应用程序崩溃。 我在打印onclick中的值(名称和地址)时没有问题。问题只在于开始活动。使用Viewholder在列表视图中使用onclick按钮开始活动

public View getView(final int position, View convertView, ViewGroup parent) { 

    ViewHolder holder = null; 
    LayoutInflater inflater = (LayoutInflater) activity 
      .getSystemService(Activity.LAYOUT_INFLATER_SERVICE); 

    if (convertView == null) { 

     convertView = inflater.inflate(R.layout.list_friends, parent, false); 
     holder = new ViewHolder(convertView); 
     convertView.setTag(holder); 
    } else { 

     holder = (ViewHolder) convertView.getTag(); 
    } 
    final Userinfo userinf = userinf.get(position); 
    holder.button = (Button) convertView.findViewById(R.id.button); 
    holder.button.setTag(position); 
    holder.button.setOnClickListener(new View.OnClickListener() { 
    public void onClick(View v) { 

      System.out.println(position); 
      System.out.println(userinf.getName()); 
      System.out.println(userinf.getAddress()); 

      Intent i=new Intent(mContext,Details.class); 
      mContext.startActivity(i); 
     } 
    }); 

    return convertView; 
} 

错误日志:

E/AndroidRuntime: FATAL EXCEPTION: main 
       Process: com.example.user, PID: 13057 
       java.lang.NullPointerException: Attempt to invoke virtual  method 'java.lang.String android.content.Context.getPackageName()' on a null object reference 
        at android.content.ComponentName.<init>(ComponentName.java:128) 
        at android.content.Intent.<init>(Intent.java:5328) 
        at com.example.appko.user.Listviewadapter$1.onClick(Listviewadapter.java:84) 
        at android.view.View.performClick(View.java:5721) 
        at android.widget.TextView.performClick(TextView.java:10931) 
        at android.view.View$PerformClick.run(View.java:22620) 
        at android.os.Handler.handleCallback(Handler.java:739) 
        at android.os.Handler.dispatchMessage(Handler.java:95) 
        at android.os.Looper.loop(Looper.java:148) 
        at android.app.ActivityThread.main(ActivityThread.java:7409) 
        at java.lang.reflect.Method.invoke(Native Method) 
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1230) 
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1120) 

列表视图适配器线84

 Intent i=new Intent(mContext,Details.class); 

Details.class只是测试类打印喜在TextView中

+0

请在这里发表您的错误日志。所以,我们可以帮助更好。 –

+0

发布您的完整适配器代码和错误日志 –

+0

没有崩溃日志无法找到错误。 请粘贴您的崩溃日志。 –

回答

2

试试这个

0

您可能需要包括

intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 

如果你可以附加日志,它会更容易识别

相关问题