我是Android编程的新手,正在开发卡片布局。我想知道,如何让它可点击?
android:clickable="true"
android:foreground="?android:attr/selectableItemBackground"
我在卡片小部件上有这个,然后我想知道在哪里点击可点击的动作?我想能够点击卡片,它获得卡片的ID,然后显示新的意图活动
这是我加载适配器的活动的代码
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 :(得分:21)
在适配器java文件和“ViewHolder”内,您将找到:
public ContactViewHolder(final View v) {
super(v);
}
写密码:
v.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
v.getContext().startActivity(new Intent(v.getContext(), YOUR_ACTIVITY_TO_START.class));
}
});
答案 1 :(得分:8)
如果你正确使用了实现,你的代码应该是这样的:
card - is the card view you instantiated to display on your ui
card.setOnClickListener(...);
在onClickListener的实现中,你应该有:
@Override
public void onClick(Card c ,View v) {
Intent intent = new Intent(MyActivity.this, NextActivity.class);
startActivity(intent);
}
这几乎就是从卡上开始新活动所需的全部内容
答案 2 :(得分:1)
您可以使用viewHolder类 如下
public ViewHolder(View itemLayoutView) {
super(itemLayoutView);
itemLayoutView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v)
{
// perfoem your action here
}
});
}
答案 3 :(得分:1)
导入android.view.View;
Intent intent = new Intent(view.getContext(),YourActivity.class); 。view.getContext()startActivity(意向);
答案 4 :(得分:1)
您可以为类实现View.OnClickListener()
接口,然后在onCreate()
方法中编写findViewById(R.id.cardview).setOnClickListener(this)
。然后,您可以覆盖onClick()
方法,并在用户单击卡时执行您想做的事情。
它看起来像这样:
public class MainActivity extends Activity implements View.OnClickListener()
{
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
// load the layout
setContentView(R.layout.filters);
// get the id of the CardView and attach an onClickListener to it
findViewById(R.id.cardList).setOnClickListener(this)
}
@Override
private void onClick(View view)
{
if(view.getId == R.id.cardList)
{
//Do something Like starting an activity
Intent intent = new Intent(MyActivity.this, NextActivity.class);
startActivity(intent);
}
}
}
答案 5 :(得分:1)
在cardView中添加onClick为我做到了:
<android.support.v7.widget.CardView
android:foreground="?android:attr/selectableItemBackground"
android:clickable="true"
android:id="@+id/bankcardId"
android:layout_width="160dp"
android:layout_height="190dp"
android:layout_margin="10dp"
android:onClick="P1_bay">
然后在您的Java函数中调用它,如下所示:
public void P1_bay(View view) {
Toast.makeText(this, "You have clicked P1", Toast.LENGTH_LONG).show();
}