web-dev-qa-db-fra.com

Vue Carte Cliquez sur Carte Déplacer vers une nouvelle activité

Je suis nouveau dans la programmation Android et travaillais sur une mise en page de carte. Je me demandais, comment puis-je le rendre cliquable? 

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

Je l'ai sur mon widget de carte et ensuite je voulais savoir où mettre une action cliquable? Je veux pouvoir cliquer sur la carte, elle obtient l'ID de la carte, puis affiche une nouvelle activité d'intention.

Ceci est mon code pour l'activité de chargement de l'adaptateur

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

Si vous avez utilisé l'implémentation correctement, votre code devrait ressembler à ceci:

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


card.setOnClickListener(...);

Dans votre implémentation de onClickListener, vous devriez avoir ceci:

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

c'est à peu près tout ce dont vous avez besoin pour commencer une nouvelle activité à partir de la carte

8
user3290178

Dans le fichier Java de votre adaptateur et à l'intérieur de "ViewHolder", vous trouverez: 

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

Écrire le code de coup:

v.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {
        v.getContext().startActivity(new Intent(v.getContext(), YOUR_ACTIVITY_TO_START.class));
    }
});
20
Mahdi Astanei

Vous pouvez utiliser la classe viewHolder.

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

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

importer Android.view.View;

Intention intention = nouvelle intention (view.getContext (), YourActivity.class); View.getContext (). StartActivity (intent);

1
Rbj93

Vous pouvez implémenter l'interface View.OnClickListener() dans votre classe, puis dans votre méthode onCreate(), vous pouvez écrire findViewById(R.id.cardview).setOnClickListener(this). Vous pouvez ensuite remplacer la méthode onClick() et faire ce que vous voulez faire lorsque l'utilisateur clique sur la carte.

Cela ressemblerait à ceci:

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