Advertisement
Guest User

Untitled

a guest
Jul 28th, 2016
53
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 14.70 KB | None | 0 0
  1. 07-28 16:25:26.915 24815-24815/com.rnrapps.user.dtuguide E/RecyclerView: No adapter attached; skipping layout
  2. 07-28 16:25:26.923 24815-24815/com.rnrapps.user.dtuguide D/AndroidRuntime: Shutting down VM
  3. 07-28 16:25:27.179 24815-24815/com.rnrapps.user.dtuguide E/AndroidRuntime: FATAL EXCEPTION: main
  4. Process: com.rnrapps.user.dtuguide, PID: 24815
  5. java.lang.NullPointerException: Attempt to invoke virtual method 'boolean android.support.v7.widget.RecyclerView$LayoutManager.canScrollVertically()' on a null object reference
  6. at android.support.v7.widget.RecyclerView.computeVerticalScrollRange(RecyclerView.java:1581)
  7. at android.view.View.onDrawScrollBars(View.java:13941)
  8. at android.view.View.onDrawForeground(View.java:17680)
  9. at android.view.View.draw(View.java:16212)
  10. at android.support.v7.widget.RecyclerView.draw(RecyclerView.java:3171)
  11. at android.view.View.updateDisplayListIfDirty(View.java:15198)
  12. at android.view.View.draw(View.java:15971)
  13. at android.view.ViewGroup.drawChild(ViewGroup.java:3610)
  14. at android.view.ViewGroup.dispatchDraw(ViewGroup.java:3400)
  15. at android.view.View.draw(View.java:16204)
  16. at android.view.View.updateDisplayListIfDirty(View.java:15198)
  17. at android.view.View.draw(View.java:15971)
  18. at android.view.ViewGroup.drawChild(ViewGroup.java:3610)
  19. at android.support.design.widget.CoordinatorLayout.drawChild(CoordinatorLayout.java:1074)
  20. at android.view.ViewGroup.dispatchDraw(ViewGroup.java:3400)
  21. at android.view.View.updateDisplayListIfDirty(View.java:15193)
  22. at android.view.View.draw(View.java:15971)
  23. at android.view.ViewGroup.drawChild(ViewGroup.java:3610)
  24. at android.view.ViewGroup.dispatchDraw(ViewGroup.java:3400)
  25. at android.view.View.updateDisplayListIfDirty(View.java:15193)
  26. at android.view.View.draw(View.java:15971)
  27. at android.view.ViewGroup.drawChild(ViewGroup.java:3610)
  28. at android.view.ViewGroup.dispatchDraw(ViewGroup.java:3400)
  29. at android.view.View.updateDisplayListIfDirty(View.java:15193)
  30. at android.view.View.draw(View.java:15971)
  31. at android.view.ViewGroup.drawChild(ViewGroup.java:3610)
  32. at android.view.ViewGroup.dispatchDraw(ViewGroup.java:3400)
  33. at android.view.View.updateDisplayListIfDirty(View.java:15193)
  34. at android.view.View.draw(View.java:15971)
  35. at android.view.ViewGroup.drawChild(ViewGroup.java:3610)
  36. at android.view.ViewGroup.dispatchDraw(ViewGroup.java:3400)
  37. at android.view.View.draw(View.java:16204)
  38. at com.android.internal.policy.PhoneWindow$DecorView.draw(PhoneWindow.java:2690)
  39. at android.view.View.updateDisplayListIfDirty(View.java:15198)
  40. at android.view.ThreadedRenderer.updateViewTreeDisplayList(ThreadedRenderer.java:282)
  41. at android.view.ThreadedRenderer.updateRootDisplayList(ThreadedRenderer.java:288)
  42. at android.view.ThreadedRenderer.draw(ThreadedRenderer.java:323)
  43. at android.view.ViewRootImpl.draw(ViewRootImpl.java:2635)
  44. at android.view.ViewRootImpl.performDraw(ViewRootImpl.java:2454)
  45. at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:2087)
  46. at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1127)
  47. at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:6038)
  48. at android.view.Choreographer$CallbackRecord.run(Choreographer.java:860)
  49. at android.view.Choreographer.doCallbacks(Choreographer.java:672)
  50. at android.view.Choreographer.doFrame(Choreographer.java:608)
  51. at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:846)
  52. at android.os.Handler.handleCallback(Handler.java:739)
  53. at android.os.Handler.dispatchMessage(Handler.java:95)
  54. at android.os.Looper.loop(Looper.java:148)
  55. at android.app.ActivityThread.main(ActivityThread.java:5438)
  56. at java.lang.reflect.Method.invoke(Native Method)
  57. at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:739)
  58. at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:629)
  59.  
  60. @Override
  61. public void onMethodCallback(final ArrayList<CommentItem> commentItems) {
  62.  
  63. CommentsListAdapter commentsListAdapter;
  64. final Dialog dialog = new Dialog(Main2Activity.this, R.style.cust_dialog);
  65. dialog.setTitle("Comments");
  66. View layout = getLayoutInflater().inflate(R.layout.content_comment,null);
  67. final LinearLayoutManager layoutManager = new LinearLayoutManager(dialog.getContext());
  68. layoutManager.setOrientation(LinearLayoutManager.VERTICAL);
  69. final RecyclerView recyclerView=(RecyclerView) layout.findViewById(R.id.recycler_view_comment);
  70. Log.d("comment items",String.valueOf(commentItems));
  71. recyclerView.setLayoutManager(layoutManager);
  72. recyclerView.setHasFixedSize(true);
  73. commentsListAdapter = new CommentsListAdapter(commentItems);
  74. recyclerView.setAdapter(commentsListAdapter);
  75. commentsListAdapter.notifyDataSetChanged();
  76. dialog.setContentView(R.layout.activity_comment);
  77. dialog.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
  78. dialog.setCanceledOnTouchOutside(true);
  79. dialog.setCancelable(true);
  80. dialog.show();
  81. }
  82.  
  83. public class PostsAdapter extends RecyclerView.Adapter<PostsAdapter.MyViewHolder> {
  84.  
  85. private Activity activity;
  86. private List<FeedItem> feedItems;
  87. private AdapterCallback mAdapterCallback;
  88. private ArrayList<CommentItem> commentItems;
  89. private ImageLoader imageLoader = AppController.getInstance().getImageLoader();
  90.  
  91.  
  92. public class MyViewHolder extends RecyclerView.ViewHolder{
  93. public TextView timestamp,statusMsg,url;
  94. public FeedImageView feedImageView;
  95. public Button getComments;
  96.  
  97. public MyViewHolder(View view) {
  98. super(view);
  99. view.bringToFront();
  100. timestamp = (TextView) view
  101. .findViewById(R.id.timestamp);
  102. statusMsg = (TextView) view
  103. .findViewById(R.id.txtStatusMsg);
  104. url = (TextView) view.findViewById(R.id.txtUrl);
  105. feedImageView = (FeedImageView) view
  106. .findViewById(R.id.feedImage1);
  107. getComments=(Button)view.findViewById(R.id.commentsbutton);
  108.  
  109. getComments.setOnClickListener(new View.OnClickListener() {
  110. @Override
  111. public void onClick(View v) {
  112. FeedItem forComment=feedItems.get(getPosition());
  113. commentItems = new ArrayList<>();
  114. if(forComment.getCommentsSize()!=0) {
  115. commentItems.addAll(forComment.getCommentItems());
  116. }
  117. if(commentItems.size()!=0)
  118. mAdapterCallback.onMethodCallback(commentItems);
  119. else
  120. Snackbar.make(v, "No Comments Yet :(", Snackbar.LENGTH_SHORT)
  121. .setAction("Action", null).show();
  122.  
  123. }
  124. });
  125. }
  126. }
  127.  
  128. public PostsAdapter(Activity activity,List<FeedItem> feedItems) {
  129. this.feedItems=feedItems;
  130. this.activity=activity;
  131. try {
  132. this.mAdapterCallback = ((AdapterCallback) activity);
  133. } catch (ClassCastException e) {
  134. throw new ClassCastException("Activity must implement AdapterCallback.");
  135. }
  136. }
  137.  
  138. @Override
  139. public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
  140. View itemView = LayoutInflater.from(parent.getContext())
  141. .inflate(R.layout.feed_item, parent, false);
  142.  
  143. return new MyViewHolder(itemView);
  144. }
  145.  
  146.  
  147. @Override
  148. public void onBindViewHolder(MyViewHolder holder, int position) {
  149.  
  150.  
  151.  
  152. final FeedItem item=feedItems.get(position);
  153.  
  154. if (imageLoader == null)
  155. imageLoader = AppController.getInstance().getImageLoader();
  156.  
  157. String a=item.getTimeStamp();
  158. holder.timestamp.setText(Utils.getTimeFromTimestamp(a));
  159.  
  160. if (!TextUtils.isEmpty(item.getStatus())) {
  161. holder. statusMsg.setText(item.getStatus());
  162. holder.statusMsg.setVisibility(View.VISIBLE);
  163. } else {
  164. // status is empty, remove from view
  165. holder.statusMsg.setVisibility(View.GONE);
  166. }
  167.  
  168. // Checking for null feed url
  169. if (item.getUrl() != null) {
  170. holder.url.setText(Html.fromHtml("<a href="" + item.getUrl() + "">"
  171. + item.getUrl() + "</a> "));
  172.  
  173. // Making url clickable
  174. holder.url.setMovementMethod(LinkMovementMethod.getInstance());
  175. holder.url.setVisibility(View.VISIBLE);
  176. } else {
  177. // url is null, remove from the view
  178. holder.url.setVisibility(View.GONE);
  179. }
  180.  
  181. if (item.getImge() != null) {
  182. holder.feedImageView.setImageUrl(item.getImge(), imageLoader);
  183. holder.feedImageView.setVisibility(View.VISIBLE);
  184. holder.feedImageView
  185. .setResponseObserver(new FeedImageView.ResponseObserver() {
  186. @Override
  187. public void onError() {
  188. }
  189.  
  190. @Override
  191. public void onSuccess() {
  192. }
  193. });
  194. } else {
  195. holder.feedImageView.setVisibility(View.GONE);
  196. }
  197.  
  198. }
  199.  
  200.  
  201. @Override
  202. public int getItemCount() {
  203. return feedItems.size();
  204. }
  205.  
  206. public static interface AdapterCallback {
  207. void onMethodCallback(ArrayList<CommentItem> commentItems);
  208. }}
  209.  
  210. public class CommentsListAdapter extends RecyclerView.Adapter<CommentsListAdapter.MyViewHolder> {
  211.  
  212. private ArrayList<CommentItem> commentItems;
  213.  
  214.  
  215. public class MyViewHolder extends RecyclerView.ViewHolder {
  216. public TextView commentTime, from, comment;
  217.  
  218. public MyViewHolder(View view) {
  219. super(view);
  220. view.bringToFront();
  221. commentTime = (TextView) view
  222. .findViewById(R.id.commenttime);
  223. from = (TextView) view
  224. .findViewById(R.id.from);
  225. comment = (TextView) view.findViewById(R.id.comment);
  226.  
  227. }
  228.  
  229.  
  230. }
  231.  
  232.  
  233. public CommentsListAdapter(ArrayList<CommentItem> commentItems) {
  234. this.commentItems=commentItems;
  235. }
  236.  
  237. @Override
  238. public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
  239. View itemView = LayoutInflater.from(parent.getContext())
  240. .inflate(R.layout.commentview, parent, false);
  241.  
  242. return new MyViewHolder(itemView);
  243. }
  244.  
  245.  
  246. @Override
  247. public void onBindViewHolder(MyViewHolder holder, int position) {
  248.  
  249. final CommentItem commentItem = commentItems.get(position);
  250.  
  251. if (commentItem.getTimeStamp() != null) {
  252. String a = commentItem.getTimeStamp();
  253. holder.commentTime.setText(Utils.getTimeFromTimestamp(a));
  254. }
  255.  
  256. if (!TextUtils.isEmpty(commentItem.getComment())) {
  257. holder.comment.setText(commentItem.getComment());
  258. holder.comment.setVisibility(View.VISIBLE);
  259. } else {
  260. // status is empty, remove from view
  261. holder.comment.setVisibility(View.GONE);
  262. }
  263.  
  264. if (!TextUtils.isEmpty(commentItem.getFrom())) {
  265. holder.from.setText(commentItem.getFrom());
  266. holder.from.setVisibility(View.VISIBLE);
  267. } else {
  268. // status is empty, remove from view
  269. holder.from.setVisibility(View.GONE);
  270. }
  271.  
  272. }
  273.  
  274. @Override
  275. public int getItemCount() {
  276. return commentItems.size();
  277. }}
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement