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);
実装を正しく使用した場合、コードは次のようになります。
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);
}
カードから新しいアクティビティを開始するのに必要なことはほぼすべてです
アダプタに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));
}
});
次のようにviewHolderクラスを使用できます
public ViewHolder(View itemLayoutView) {
super(itemLayoutView);
itemLayoutView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v)
{
// perfoem your action here
}
});
}
OnView oncardを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();
}
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);
}
}
}
import Android.view.View;
Intent intent = new Intent(view.getContext()、YourActivity.class); view.getContext()。startActivity(intent);