해시 태그를 사용할 응용 프로그램을 만들고 있습니다. 지금까지 나는 AutoLinkTextClick을 사용하고 있습니다! 그리고 모든 사람이 오류가 확인 된 해시 태그에 응용 프로그램 충돌을 클릭 할 때를 제외하고 잘 작동 :도우미 클래스 (어댑터)에서 시작 의도가 java.lang.NullPointerException을 반환합니다 :
java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String android.content.Context.getPackageName()' on a null object reference
그래서 나는 그것을 일으키는 사람들이 getContext()
또는 getActvity()
를 사용하는 것이 좋습니다하지만 둘 수 있습니다 것에 대해 거의 모든 StackOverflow에 걸쳐 읽고 나는 그 의도를 어댑터에서 시작하려고 노력하고 있기 때문에 작동하지 않습니다 또는 클래스에서 활동 또는 조각, 그래서 아주 잘 당신의 도움을 주셔서 감사하겠습니다.
이 문제에 대한 귀하의 도움과 협조에 진심으로 감사드립니다. 아래에 표시되는 어댑터와 오류에 대한 내 코드 :
package com.android.msahakyan.expandablenavigationdrawer.adapter;
import android.app.Activity;
import android.content.DialogInterface;
import android.content.Intent;
import android.support.v4.app.FragmentManager;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import android.support.v7.app.AlertDialog;
import com.android.msahakyan.expandablenavigationdrawer.AboutUsActivity;
import com.android.volley.toolbox.ImageLoader;
import com.android.volley.toolbox.NetworkImageView;
import com.android.msahakyan.expandablenavigationdrawer.R;
import com.android.msahakyan.expandablenavigationdrawer.activity.FeedImageView;
import com.android.msahakyan.expandablenavigationdrawer.model.Feed;
import com.android.msahakyan.expandablenavigationdrawer.others.AppController;
import com.luseen.autolinklibrary.AutoLinkMode;
import com.luseen.autolinklibrary.AutoLinkOnClickListener;
import com.luseen.autolinklibrary.AutoLinkTextView;
import java.util.List;
public class FeedsListAdapter extends RecyclerView.Adapter<FeedsListAdapter.MyHolder> {
private Activity activity;
private LayoutInflater inflater;
private List<Feed> feedItems;
ImageLoader imageLoader = AppController.getInstance().getImageLoader();
//ImageLoader imageLoader = VolleySingleton.getInstance(context).getImageLoader()
public FragmentManager f_manager;
public FeedsListAdapter(Activity activity, List<Feed> feedItems) {
this.activity = activity;
this.feedItems = feedItems;
}
//INITIALIE VH
//@Override
public MyHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View v= LayoutInflater.from(parent.getContext()).inflate(R.layout.feeds_home_row,parent,false);
MyHolder holder=new MyHolder(v);
return holder;
}
//BIND DATA
// @Override
public void onBindViewHolder(MyHolder holder, int position) {
//ImageLoader imageLoader = AppController.getInstance().getImageLoader();
if (imageLoader == null)
imageLoader = AppController.getInstance().getImageLoader();
final Feed f = feedItems.get(position);
//Post images
holder.picture.setImageUrl(f.getPictureUrl(), imageLoader); // displays company profile image on post
holder.sms_image.setImageUrl(f.getMessagePictureUrl(), imageLoader); // displays post image on post
//autoLinkTextView.enableUnderLine();
holder.messages.addAutoLinkMode(AutoLinkMode.MODE_HASHTAG);
holder.messages.setAutoLinkText("this the sample message #test i need to test hashtag onClink and launch intent"); //
holder.messages.setAutoLinkOnClickListener(new AutoLinkOnClickListener() {
@Override
public void onAutoLinkTextClick(AutoLinkMode autoLinkMode, String matchedText) {
Intent intent = new Intent(activity, AboutUsActivity.class);
intent.putExtra("companyId", f.getCompanyId());
activity.startActivity(intent);
}
});
//holder.messages.setText(f.getMessage());
//Linkify.addLinks(holder.messages, Linkify.ALL); //detect link that are in a message
holder.date_created.setText(f.getDateCreated());
holder.company.setText(f.getCompany());
}
/*
TOTAL ITEMS
*/
//@Override
public int getItemCount() {
return feedItems.size();
}
/*
ADD DATA TO ADAPTER
*/
public void add(Feed s) {
feedItems.add(s);
notifyDataSetChanged();
}
/*
CLEAR DATA FROM ADAPTER
*/
public void clear() {
feedItems.clear();
notifyDataSetChanged();
}
/*
VIEW HOLDER CLASS
*/
class MyHolder extends RecyclerView.ViewHolder {
FeedImageView sms_image;
NetworkImageView picture;
//TextView messages;
AutoLinkTextView messages;
//AutoLinkTextView autoLinkTextView;
TextView date_created;
TextView company;
public MyHolder(View convertView) {
super(convertView);
this.sms_image = (FeedImageView) convertView.findViewById(R.id.sms_image);
NetworkImageView thumbnail = (NetworkImageView) convertView.findViewById(R.id.thumbnail);
this.picture = (NetworkImageView) convertView.findViewById(R.id.picture);
//this.messages = (TextView) convertView.findViewById(R.id.messages);
this.messages = (AutoLinkTextView) convertView.findViewById(R.id.messages);
this.date_created = (TextView) convertView.findViewById(R.id.date_created);
this.company = (TextView) convertView.findViewById(R.id.company);
//TextView status = (TextView) convertView.findViewById(R.id.status);
}
}
}
오류 표시되어있는 당신은 RecyclerView 어댑터에서 활동을 시작하지 말아야
10-10 08:08:06.128 28368-28368/com.android.msahakyan.expandablenavigationdrawer E/AndroidRuntime﹕ FATAL EXCEPTION: main
Process: com.android.msahakyan.expandablenavigationdrawer, PID: 28368
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:4666)
at com.android.msahakyan.expandablenavigationdrawer.adapter.FeedsListAdapter$1.onAutoLinkTextClick(FeedsListAdapter.java:87)
at com.luseen.autolinklibrary.AutoLinkTextView$1.onClick(AutoLinkTextView.java:77)
at android.text.method.LinkMovementMethod.onTouchEvent(LinkMovementMethod.java:217)
at com.luseen.autolinklibrary.LinkTouchMovementMethod.onTouchEvent(LinkTouchMovementMethod.java:38)
at android.widget.TextView.onTouchEvent(TextView.java:8689)
at android.view.View.dispatchTouchEvent(View.java:9787)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2686)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2335)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2686)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2335)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2686)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2335)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2686)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2335)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2686)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2335)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2686)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2335)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2686)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2335)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2686)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2335)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2686)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2335)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2686)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2335)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2686)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2335)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2686)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2335)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2686)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2335)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2686)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2335)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2686)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2335)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2686)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2335)
at com.android.internal.policy.PhoneWindow$DecorView.superDispatchTouchEvent(PhoneWindow.java:2461)
at com.android.internal.policy.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1780)
at android.app.Activity.dispatchTouchEvent(Activity.java:2853)
at android.support.v7.view.WindowCallbackWrapper.dispatchTouchEvent(WindowCallbackWrapper.java:68)
at com.android.internal.policy.PhoneWindow$DecorView.dispatchTouchEvent(PhoneWindow.java:2422)
at android.view.View.dispatchPointerEvent(View.java:10018)
at android.view.ViewRootImpl$ViewPostImeInputStage.processPointerEvent(ViewRootImpl.java:4738)
at android.view.ViewRootImpl$ViewPostImeInputStage.onProcess(ViewRootImpl.java:4596)
at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:4101)
at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:4154)
at android.view
가 어떻게 활동 목록과 활동 PARAMS를 추가 :
이 그런 다음 활동이나 조각에 리스너를 설정? 당신의 활동도 보여줄 수 있습니까? –
장소 코드 추가 방법 활동 참조를 어댑터에 전달하는 방법 –