Просмотр карты Нажмите на карту Перейти к новой активности
Я новичок в программировании на Android и работаю над макетом карт. Мне было интересно, как сделать его интерактивным?
android:clickable="true"
android:foreground="?android:attr/selectableItemBackground"
У меня есть это на моем карточном виджете, а затем я хотел знать, где поставить действие с кликом? Я хочу, чтобы иметь возможность щелкнуть карту, она получает идентификатор карты, а затем отображает новую активность.
Это мой код для активности загрузки адаптера
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);
Ответы
Ответ 1
Если вы правильно использовали реализацию, ваш код должен выглядеть следующим образом:
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
В 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));
}
});
Ответ 3
Вы можете использовать класс viewHolder
как следует
public ViewHolder(View itemLayoutView) {
super(itemLayoutView);
itemLayoutView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v)
{
// perfoem your action here
}
});
}
Ответ 4
import android.view.View;
Intent intent = новый Intent (view.getContext(), YourActivity.class);
. View.getContext() startActivity (намерение);
Ответ 5
Addind onClick to cardView сделал это для меня:
<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();
}
Ответ 6
Вы можете реализовать интерфейс 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);
}
}
}