2016-11-14 71 views
-1

这是feedlist适配器。当我从活动中调用该应用程序时,应用程序在Android 4.4上崩溃,但代码在5.0和更高版本上正常工作。请帮忙。一直试图解决这个问题大约一周,没有运气。此关联的应用程序崩溃 view.setOnClickListener(新View.OnClickListener(){Android应用程序崩溃时,我只在Android 4.4的ListView上使用FeedListAdapter

public class FeedListAdapter extends BaseAdapter { 
     private Activity activity; 
     private LayoutInflater inflater; 
     private List<FeedItem> feedItems; 
     private SharedPreferences mAdminPreferences; 


     public FeedListAdapter(Activity activity, List<FeedItem> feedItems) { 
      this.activity = activity; 
      this.feedItems = feedItems; 
     } 

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

     @Override 
     public Object getItem(int location) { 
      return feedItems.get(location); 
     } 

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

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

      if (inflater == null) 
       inflater = (LayoutInflater) activity 
         .getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
      if (convertView == null) 
       convertView = inflater.inflate(R.layout.feed_item, null); 

      final TextView name = (TextView) convertView.findViewById(R.id.name); 
      final TextView projectid = (TextView) convertView.findViewById(R.id.project_id); 
      TextView timestamp = (TextView) convertView 
        .findViewById(R.id.timestamp); 
      final TextView statusMsg = (TextView) convertView 
        .findViewById(R.id.txtStatusMsg); 
      final TextView url = (TextView) convertView.findViewById(R.id.txtUrl); 
      // final TextView usertype = (TextView) convertView.findViewById(R.id.usertype); 



      FeedItem item = feedItems.get(position); 


      name.setText(item.getName()); 
      projectid.setText(item.getId()); 
      url.setText(item.getUrl()); 

      final String userid = (item.getUserid()); 
      final String story = (item.getStory()); 
      final String coursename = (item.getCourseName()); 
      final String courseduration = (item.getCourseDuration()); 
      final String amount = (item.getAmount()); 
      final String extradetails = (item.getExtraDetails()); 
      final String videourl = (item.getVideoUrl()); 
      final String school = (item.getSchool()); 



      // My code to instantiate buttonclick and get name of item being clicked 

      View view = convertView.findViewById(R.id.layoutclick); 

      view.setOnClickListener(new View.OnClickListener() { 
       @Override 
       public void onClick(View v) { 
        String namegotten = name.getText().toString(); 
        String projectidgotten = projectid.getText().toString(); 
        String msg = statusMsg.getText().toString(); 
        String urlgotten = url.getText().toString(); 


        Toast.makeText(v.getContext(), namegotten + projectidgotten, Toast.LENGTH_SHORT).show(); 


          Collect.getInstance().getActivityLogger() 
            .logAction(this, "downloadBlankForms", "click"); 

        Intent i = new Intent(v.getContext(), Activity_AllForms_Download.class); 

        i.putExtra("id", projectidgotten); 
        v.getContext().startActivity(i); 

       } 
      }); 


      // Chcek for empty status message 
      if (!TextUtils.isEmpty(item.getStatus())) { 
       statusMsg.setText(item.getStatus()); 
       statusMsg.setVisibility(View.VISIBLE); 
      } else { 
       // status is empty, remove from view 
       statusMsg.setVisibility(View.GONE); 
      } 

      // Checking for null feed url 
      if (item.getUrl() != null) { 
       url.setText(Html.fromHtml("<a href=\"" + item.getUrl() + "\">" 
         + item.getUrl() + "</a> ")); 

       // Making url clickable 
       url.setMovementMethod(LinkMovementMethod.getInstance()); 
       url.setVisibility(View.VISIBLE); 
      } else { 
       // url is null, remove from the view 
       url.setVisibility(View.GONE); 
      } 


      return convertView; 
     } 

    } 

这里是

D/AndroidRuntime: Shutting down VM 
W/dalvikvm: threadid=1: thread exiting with uncaught exception (group=0xa4d2bb20) 
E/AndroidRuntime: FATAL EXCEPTION: main 
        Process: org.odk.collect.android, PID: 31036 
        java.lang.NoClassDefFoundError: org.odk.collect.android.adapters.FeedListAdapter$1 
         at org.odk.collect.android.adapters.FeedListAdapter.getView(FeedListAdapter.java:115) 
         at android.widget.AbsListView.obtainView(AbsListView.java:2263) 
         at android.widget.ListView.onMeasure(ListView.java:1147) 
         at android.view.View.measure(View.java:16497) 
         at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5125) 
         at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1404) 
         at android.widget.LinearLayout.measureVertical(LinearLayout.java:695) 
         at android.widget.LinearLayout.onMeasure(LinearLayout.java:588) 
         at android.view.View.measure(View.java:16497) 
         at android.widget.ScrollView.measureChildWithMargins(ScrollView.java:1226) 
         at android.widget.FrameLayout.onMeasure(FrameLayout.java:310) 
         at android.widget.ScrollView.onMeasure(ScrollView.java:326) 
         at android.view.View.measure(View.java:16497) 
         at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5125) 
         at android.widget.FrameLayout.onMeasure(FrameLayout.java:310) 
         at android.view.View.measure(View.java:16497) 
         at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5125) 
         at com.android.internal.widget.ActionBarOverlayLayout.onMeasure(ActionBarOverlayLayout.java:327) 
         at android.view.View.measure(View.java:16497) 
         at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5125) 
         at android.widget.FrameLayout.onMeasure(FrameLayout.java:310) 
         at com.android.internal.policy.impl.PhoneWindow$DecorView.onMeasure(PhoneWindow.java:2291) 
         at android.view.View.measure(View.java:16497) 
         at android.view.ViewRootImpl.performMeasure(ViewRootImpl.java:1916) 
         at android.view.ViewRootImpl.measureHierarchy(ViewRootImpl.java:1113) 
         at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1295) 
         at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1000) 
         at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:5670) 
         at android.view.Choreographer$CallbackRecord.run(Choreographer.java:761) 
         at android.view.Choreographer.doCallbacks(Choreographer.java:574) 
         at android.view.Choreographer.doFrame(Choreographer.java:544) 
         at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:747) 
         at android.os.Handler.handleCallback(Handler.java:733) 
         at android.os.Handler.dispatchMessage(Handler.java:95) 
         at android.os.Looper.loop(Looper.java:136) 
         at android.app.ActivityThread.main(ActivityThread.java:5017) 
         at java.lang.reflect.Method.invokeNative(Native Method) 
         at java.lang.reflect.Method.invoke(Method.java:515) 
         at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779) 
         at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595) 
         at dalvik.system.NativeStart.main(Native Method) 
Application terminated. 

崩溃结束这里的LOG。

回答

-2
My pscuode code:-- 

     // View view = convertView.findViewById(R.id.layoutclick); 

     convertView.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       String namegotten = name.getText().toString(); 
       String projectidgotten = projectid.getText().toString(); 
       String msg = statusMsg.getText().toString(); 
       String urlgotten = url.getText().toString(); 


       Toast.makeText(v.getContext(), namegotten + projectidgotten, Toast.LENGTH_SHORT).show(); 


         Collect.getInstance().getActivityLogger() 
           .logAction(this, "downloadBlankForms", "click"); 

       Intent i = new Intent(v.getContext(), Activity_AllForms_Download.class); 

       i.putExtra("id", projectidgotten); 
       v.getContext().startActivity(i); 

      } 
     }); 
+0

测试,但它不工作。谢谢你的帮助。仍然给我同样的错误 – Pheonix

+0

请注意,这在其他版本的Android 4.4以上的罚款,但不适用于Android 4.4 – Pheonix