2017-10-15 67 views
-1

我想通過單擊Recyclerview中的cardview(item)來打開新活動。但我的新的活動是無法啓動和應用程序已停止彈起新活動未啓動(應用已停止)

我的適配器類是

public class MyAdapter extends RecyclerView.Adapter<MyAdapter.ViewHolder>{ 

private List<Contacts> listitems; 
private Context context; 

public interface OnItemClickListener{ 
    void onItemClick(Contacts item); 
} 

public MyAdapter(List<Contacts> listitems, Context context) { 
    this.listitems = listitems; 
    this.context = context; 
} 

@Override 
public MyAdapter.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { 
    View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.list_item,parent,false); 
    return new ViewHolder(v); 
} 

@Override 
public void onBindViewHolder(MyAdapter.ViewHolder holder, int position) { 
    Contacts c = listitems.get(position); 

    holder.t1.setText(c.getName()); 
    holder.t2.setText(c.getNumber()); 

} 

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

public class ViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener { 
    public TextView t1,t2; 
    public ImageView image; 

    public ViewHolder(View itemView) { 
     super(itemView); 

     itemView.setOnClickListener(this); 

     t1 = (TextView) itemView.findViewById(R.id.textview1); 
     t2 = (TextView) itemView.findViewById(R.id.textview2); 

    } 

    @Override 
    public void onClick(View v) { 
     itemView.getContext().startActivity(new Intent(context,Details.class)); 
    } 
} 
} 
+0

發佈您在android監視器中收到的錯誤。 –

+0

安卓顯示器不顯示任何錯誤只是應用程序崩潰,因爲我點擊項目 –

+0

爲什麼你使用itemview.setOnClickListener?你可以給你的根佈局編號,並在它上執行點擊監聽器 –

回答

0

只需更換

itemView.getContext().startActivity(new Intent(context,Details.class)); 

context.startActivity(new Intent(context,Details.class)); 
+0

我照你說的做了,但它沒有幫助:( –

+0

它是顯示一些錯誤還是剛崩潰的應用程序,如果它只是崩潰? –

+0

然後錯誤是在詳細信息.class不在這個類 –

0
您使用回收

然後你可以在你的活動中使用它,而不是在適配器中

recyclerview.onaddOnItemTouchListener(new RecyclerItemClickListener(this, new RecyclerItemClickListener.OnItemClickListener() { 
    @Override 
    public void onItemClick(View view, int position) { 
     Activity_name.startActivity(new Intent(context,Details.class)); 
    } 
})); 
+0

您必須從適配器中刪除onclicklistener –

+0

您是否定義了清單文件中的活動,如果已定義,那麼共享錯誤日誌 –