2017-10-15 5 views
-1

Ich möchte eine neue Aktivität öffnen, indem ich in Recyclerview auf cardview(item) klicke. Aber meine neue Tätigkeit ist nicht in der Lage zu starten und die Anwendung gestoppt erscheintNeue Aktivität wird nicht gestartet (App wurde gestoppt)

Meine Adapterklasse ist

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

Veröffentlichen Sie den Fehler, den Sie in Ihrem Android-Monitor erhalten. –

+0

android monitor zeigt keine fehler nur app stürzt ab, wie ich auf artikel –

+0

Warum verwenden Sie itemview.setOnClickListener? Sie können ID zu Ihrem root-Layout und führen Sie auf click listener auf es –

Antwort

0

ersetzen nur

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

mit

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

ich tat, wie Sie sagten, aber es nicht geholfen :( –

+0

ist es zeigt einen Fehler oder nur Absturz der Anwendung, wenn es nur abstürzt? –

+0

dann Fehler ist in Details Klasse nicht in dieser Klasse –

0

Sie Recycler verwenden anzeigen dann können Sie dies in Ihrer Aktivität nicht in Adapter

verwenden
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

Sie onclicklistener aus dem Adapter entfernen müssen –

+0

Haben Sie Aktivität in Manifest-Datei definiert, wenn definiert, dann teilen Sie die Fehlerprotokolle –

Verwandte Themen