web-dev-qa-db-ja.com

カードビュー[カードを新しいアクティビティに移動]をクリックします

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);
17
NexusOnly

実装を正しく使用した場合、コードは次のようになります。

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);
}

カードから新しいアクティビティを開始するのに必要なことはほぼすべてです

9
user3290178

アダプタに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));
    }
});
21
Mahdi Astanei

次のようにviewHolderクラスを使用できます

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

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

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();
}
2
Deo

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);
        }
     }
}
1
Rohan Lekhwani

import Android.view.View;

Intent intent = new Intent(view.getContext()、YourActivity.class); view.getContext()。startActivity(intent);

1
Rbj93