2017-02-27 56 views
-2

我有我想檢查是否出現的東西顯示或不一個按鈕recyclerView:應用程序崩潰的recyclerview

@Override 
    public void onBindViewHolder(ViewHolder holder, int position) { 

     Posts post = Posts.get(position); 
     holder.post = post; 

     //Loading image from url 
     imageLoader = CustomVolleyRequest.getInstance(context).getImageLoader(); 

//THE PROBLEM IS HERE (in this 7 lines): 
     String lk = post.getLk(); 
     if(lk.equals("1")){ //show button 
      holder.textViewUnlk.setVisibility(View.VISIBLE); 
     } 
     else { //hide 
      holder.textViewLk.setVisibility(View.VISIBLE); 
     } 



     holder.textViewName.setText(post.getName()); 

     holder.textViewPublisher.setText(post.getPublisher()); 
     holder.setIsRecyclable(false); 

     } 

的textViewLk和textViewUnlk是XML作爲不見了。

爲什麼我的應用程序崩潰?

< - 編輯------------------------------------------ -----------

public ViewHolder(View itemView) { 
     super(itemView); 
     imageView = (NetworkImageView) itemView.findViewById(R.id.imageViewHero); 
     textViewName = (TextView) itemView.findViewById(R.id.textViewName); 
     textViewPublisher = (TextView) itemView.findViewById(R.id.textViewPublisher); 
     textViewLk = (TextView) itemView.findViewById(R.id.textViewLk); 
     textViewUnlk = (TextView) itemView.findViewById(R.id.textViewUnlk); 
     textViewName.setClickable(true); 
     textViewName.setOnClickListener(this); 
     textViewLk.setClickable(true); 
     textViewLk.setOnClickListener(this); 
     textViewUnlk.setClickable(true); 
     textViewUnlk.setOnClickListener(this); 
    } 

崩潰日誌:

--------- beginning of crash 
E/AndroidRuntime: FATAL EXCEPTION: main 
        Process: com.sk.mf, PID: 2955 
        java.lang.NullPointerException: println needs a message 
         at android.util.Log.println_native(Native Method) 
         at android.util.Log.w(Log.java:185) 
         at com.sk.mf.CardAdapter.onBindViewHolder(CardAdapter.java:76) 
         at com.sk.mf.CardAdapter.onBindViewHolder(CardAdapter.java:35) 
         at android.support.v7.widget.RecyclerView$Adapter.onBindViewHolder(RecyclerView.java:6279) 
         at android.support.v7.widget.RecyclerView$Adapter.bindViewHolder(RecyclerView.java:6312) 
         at android.support.v7.widget.RecyclerView$Recycler.tryBindViewHolderByDeadline(RecyclerView.java:5258) 
         at android.support.v7.widget.RecyclerView$Recycler.tryGetViewHolderForPositionByDeadline(RecyclerView.java:5521) 
         at android.support.v7.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:5363) 
         at android.support.v7.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:5359) 
         at android.support.v7.widget.LinearLayoutManager$LayoutState.next(LinearLayoutManager.java:2141) 
         at android.support.v7.widget.LinearLayoutManager.layoutChunk(LinearLayoutManager.java:1525) 
         at android.support.v7.widget.LinearLayoutManager.fill(LinearLayoutManager.java:1488) 
         at android.support.v7.widget.LinearLayoutManager.onLayoutChildren(LinearLayoutManager.java:585) 
         at android.support.v7.widget.RecyclerView.dispatchLayoutStep2(RecyclerView.java:3506) 
         at android.support.v7.widget.RecyclerView.dispatchLayout(RecyclerView.java:3254) 
         at android.support.v7.widget.RecyclerView.onLayout(RecyclerView.java:3767) 
         at android.view.View.layout(View.java:17523) 
         at android.view.ViewGroup.layout(ViewGroup.java:5612) 
         at android.widget.RelativeLayout.onLayout(RelativeLayout.java:1079) 
         at android.view.View.layout(View.java:17523) 
         at android.view.ViewGroup.layout(ViewGroup.java:5612) 
         at android.widget.FrameLayout.layoutChildren(FrameLayout.java:323) 
         at android.widget.FrameLayout.onLayout(FrameLayout.java:261) 
         at android.view.View.layout(View.java:17523) 
         at android.view.ViewGroup.layout(ViewGroup.java:5612) 
         at android.support.v4.widget.DrawerLayout.onLayout(DrawerLayout.java:1193) 
         at android.view.View.layout(View.java:17523) 
         at android.view.ViewGroup.layout(ViewGroup.java:5612) 
         at android.widget.FrameLayout.layoutChildren(FrameLayout.java:323) 
         at android.widget.FrameLayout.onLayout(FrameLayout.java:261) 
         at android.view.View.layout(View.java:17523) 
         at android.view.ViewGroup.layout(ViewGroup.java:5612) 
         at android.support.v7.widget.ActionBarOverlayLayout.onLayout(ActionBarOverlayLayout.java:437) 
         at android.view.View.layout(View.java:17523) 
         at android.view.ViewGroup.layout(ViewGroup.java:5612) 
         at android.widget.FrameLayout.layoutChildren(FrameLayout.java:323) 
         at android.widget.FrameLayout.onLayout(FrameLayout.java:261) 
         at android.view.View.layout(View.java:17523) 
         at android.view.ViewGroup.layout(ViewGroup.java:5612) 
         at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1741) 
         at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1585) 
         at android.widget.LinearLayout.onLayout(LinearLayout.java:1494) 
         at android.view.View.layout(View.java:17523) 
         at android.view.ViewGroup.layout(ViewGroup.java:5612) 
         at android.widget.FrameLayout.layoutChildren(FrameLayout.java:323) 
         at android.widget.FrameLayout.onLayout(FrameLayout.java:261) 
         at com.android.internal.policy.DecorView.onLayout(DecorView.java:724) 
         at android.view.View.layout(View.java:17523) 
         at android.view.ViewGroup.layout(ViewGroup.java:5612) 
         at android.view.ViewRootImpl.performLayout(ViewRootImpl.java:2342) 
         at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:2069) 
         at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1246) 
         at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:6301) 
         at android.view.Choreographer$CallbackRecord.run(Choreographer.java:871) 
         at android.view.Choreographer.doCallbacks(Choreographer.java:683) 
         at android.view.Choreographer.doFrame(Choreographer.java:619) 
E/AndroidRuntime:  at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:857) 
         at android.os.Handler.handleCallback(Handler.java:751) 
         at android.os.Handler.dispatchMessage(Handler.java:95) 
         at android.os.Looper.loop(Looper.java:154) 
         at android.app.ActivityThread.main(ActivityThread.java:6077) 
         at java.lang.reflect.Method.invoke(Native Method) 
         at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:865) 
         at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:755) 
Application terminated. 

posts.java:

public String getLk() { 
     return lk; 
    } 
+0

什麼是錯誤? – Furqan

+1

在這裏粘貼你的崩潰日誌,以便我們可以檢查你的代碼有什麼問題。 –

+1

也把你的持有者類 –

回答

2

Log.wgetLk()正試圖打印什麼。

確保始終填充該日誌中的值。您可以使用一個快速骯髒的劈如下:

Log.w("whatever", "" + whateverItIsYourePrinting); 

(用繩子串連,以確保總有一些東西打印),你可能也需要改變

if (lk.equals("1")) { 

if (lk != null && lk.equals("1")) { 
+0

我已經刪除了log.w並且仍然崩潰;( –

+1

然後發佈你的新錯誤日誌 –

+0

你的'if'解決崩潰了,肯定我的getLk()沒有返回任何東西。 –