2016-11-24 12 views
0

Upcoming.javaをMeetingDetails.javaに設定しようとしています。私はすでにOnItemClickListenerの内部でトーストしようとすると、それは動作しますが、私はインテントしようとするとエラーが発生します。setOnItemClickListenerでインテントを呼び出すときにエラーが発生するRecyclerView

FATAL EXCEPTION: main 
Process: com.example.erice.attendancecontroller, PID: 1358 
java.lang.NullPointerException: Attempt to invoke virtual method 'android.app.ActivityThread$ApplicationThread android.app.ActivityThread.getApplicationThread()' on a null object reference 
        at com.example.erice.attendancecontroller.Upcoming$1.onItemClicked(Upcoming.java:65) 
        at com.example.erice.attendancecontroller.MeetingListClickSupport$1.onClick(MeetingListClickSupport.java:20) 
:Upcoming.Java

mAdapter = new MeetingsAdapter(meetingList); 
RecyclerView.LayoutManager mLayoutManager = new LinearLayoutManager(getApplicationContext()); 
    recyclerView.setLayoutManager(mLayoutManager); 
    recyclerView.addItemDecoration(new MeetingDivider(this, LinearLayoutManager.VERTICAL)); 
    recyclerView.setItemAnimator(new DefaultItemAnimator()); 
    recyclerView.setAdapter(mAdapter); 

    MeetingListClickSupport.addTo(recyclerView).setOnItemClickListener(new MeetingListClickSupport.OnItemClickListener() { 
     @Override 
     public void onItemClicked(RecyclerView recyclerView, int position, View v) { 
      Meeting meeting = meetingList.get(position); 
      Intent i = new Intent(getApplicationContext() , MeetingDetails.class); 
      i.putExtra("id", meeting.getId()); 
      i.putExtra("status", "U"); 
      startActivity(i); 
     } 
    }); 

MeetingListClickSupport.java

@Override 
    public void onClick(View v) { 
     if (mOnItemClickListener != null) { 
      RecyclerView.ViewHolder holder = mRecyclerView.getChildViewHolder(v); 
      mOnItemClickListener.onItemClicked(mRecyclerView, holder.getAdapterPosition(), v); 
     } 
    } 

MeetingsAdapter.java

private List<Meeting> meetingsList; 

public class MyViewHolder extends RecyclerView.ViewHolder { 
    public TextView mName, description; 

    public MyViewHolder(View view) { 
     super(view); 
     mName = (TextView) view.findViewById(R.id.mName); 
     description = (TextView) view.findViewById(R.id.description); 
    } 
} 

public MeetingsAdapter(List<Meeting> meetingsList) { 
    this.meetingsList = meetingsList; 
} 

@Override 
public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { 
    View itemView = LayoutInflater.from(parent.getContext()) 
      .inflate(R.layout.activity_meeting_list, parent, false); 

    return new MyViewHolder(itemView); 
} 

@Override 
public void onBindViewHolder(MyViewHolder holder, int position) { 
    Meeting meeting = meetingsList.get(position); 
    holder.mName.setText(meeting.getName()); 
    holder.description.setText(meeting.getDescription()); 
} 

@Override 
public int getItemCount() { 
    return meetingsList.size(); 
} 

は、私はこのようなエラーが発生しました

してください誰も私を助けることができるならば、

RecyclerView.LayoutManager mLayoutManager = new LinearLayoutManager(getApplicationContext()); 

あなたのこの行では非常に多くの

+0

あなたは、コードのすべてのビットを読まずに私たちは文脈を理解していることをやろうとしているものを告げてから始める場合、それは良いだろう。たとえ有効な回答があったとしても、それがはっきりしないので投票を停止する。 –

+0

[NullPointerExceptionとは何か、それを修正する方法は?](http://stackoverflow.com/questions/218384/what-is-a-nullpointerexception-and-how-do-i-fix-it) ) – sushildlh

+0

アプリケーションコンテキストではなく、現在のアクティビティコンテキストを渡してください。 –

答えて

0

をありがとうあなたの通過getApplicationContext()あなたはActivitycontextを渡す必要があります。

使用この

RecyclerView.LayoutManager mLayoutManager = new LinearLayoutManager(this); 

はその後RecycleView.Adapterクラスのコンストラクタを作成します。あなたのOnClick使用中の今

public MeetingsAdapter : RecyclerView.Adapter 
{ 
    Activity context; 

    public MeetingsAdapter(Activity context) 
     { 
      this.context = context; 
     } 
} 

このよう

Intent i = new Intent(context , MeetingDetails.class); 
+0

あなたの応答をありがとう、私はコンテキストが参照するOnClickのコンテキストを使用するときは?私はMeetingsAdapter.Javaを持っているので、私はすでにpublic MeetingsAdapter(Activityコンテキスト)のコンストラクタを作成し、MeetingsAdapter.javaのActivityコンテキストを宣言します。 –

+0

私はMeetingsAdapter.javaを投稿に追加します –

関連する問題