2014-11-22 13 views
10

Tôi mới làm quen với lập trình Android và đang làm việc trên bố cục thẻ. Tôi đã tự hỏi, làm thế nào để tôi làm cho nó có thể nhấp?Xem thẻ Nhấn vào thẻ Di chuyển đến hoạt động mới

android:clickable="true" 
android:foreground="?android:attr/selectableItemBackground" 

Tôi có điều đó trên tiện ích thẻ của mình và sau đó tôi muốn biết vị trí đặt một hành động có thể nhấp? Tôi muốn để có thể nhấp vào thẻ, nó được id của thẻ, và sau đó hiển thị một hoạt động ý định mới

Đây là mã của tôi cho hoạt động này để tải adapter

setContentView(R.layout.activity_my); 


    RecyclerView recList = (RecyclerView) findViewById(R.id.cardList); 
    recList.setHasFixedSize(true); 
    LinearLayoutManager llm = new LinearLayoutManager(this); 
    llm.setOrientation(LinearLayoutManager.VERTICAL); 
    recList.setLayoutManager(llm); 

    ContactAdapter ca = new ContactAdapter(createList(30)); 

    recList.setAdapter(ca); 
+0

Có thể bạn có thể nhận được một số Ý tưởng từ đây -> http://stackoverflow.com/questions/24471109/recyclerview-onclick – Alfaplus

Trả lời

6

Nếu bạn sử dụng việc thực hiện một cách chính xác, mã của bạn nên đi như thế này:

card - is the card view you instantiated to display on your ui 


card.setOnClickListener(...); 

trong thực hiện của bạn trong những OnClickListener, bạn nên có điều này:

@Override 
public void onClick(Card c ,View v) { 
    Intent intent = new Intent(MyActivity.this, NextActivity.class); 
    startActivity(intent); 
} 
.210

được khá nhiều tất cả các bạn cần phải bắt đầu một hoạt động mới từ thẻ

+1

Tôi không biết mình có triển khai đúng hay không. Tôi có một cái nhìn tái chế mà bên trong của nó tôi cư nó với các vật dụng CardView. Bất cứ khi nào tôi cố gắng để làm một recList (biến cho danh sách tái chế) và thiết lập một onClicklistener, tôi dường như không thể có được onClick (thẻ C, xem v) tôi chỉ nhận được onClick (xem v) – NexusOnly

+0

câu trả lời này thất bại trong việc giải quyết ngữ cảnh . xem câu trả lời của Mahdi cho câu trả lời đúng. Bạn phải lấy ngữ cảnh thông qua một trong các khung nhìn (ví dụ như một lần xem văn bản trên thẻ). – seekingStillness

14

Trong Adaptor file java của bạn và bên trong "ViewHolder", bạn sẽ tìm thấy:

public ContactViewHolder(final View v) { 
     super(v); 

    } 

Viết Blow Code:

v.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View view) { 
       v.getContext().startActivity(new Intent(v.getContext(),your_activity_to_start.class)); 
      } 
     }) 
+0

đây phải là câu trả lời được chấp nhận – seekingStillness

1

Bạn có thể sử dụng viewHolder lớp như sau

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

     itemLayoutView.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) 
      { 
      // perfoem your action here 
      } 
     }); 
    } 
1

nhập android.view.View;

Intent intent = new Intent (view.getContext(), YourActivity.class); view.getContext(). StartActivity (intent);

+0

Thêm ngữ cảnh cho mã ... Và tô sáng cú pháp. – coatless

Các vấn đề liên quan