web-dev-qa-db-fra.com

accepter des événements de clic dans RelativeLayout

J'ai une RelativeLayout avec quelques TextView enfant

<RelativeLayout
    Android:id="@+id/shift_parent_name"
    Android:layout_width="fill_parent"
    Android:layout_weight="0.25"
    >
    <TextView
        Android:id="@+id/shift_parent_nametitle"
        Android:text="@string/shift_parent_nametitle"
        style="@style/header_text"
        />
    <TextView
        Android:id="@+id/shift_parent_namefield"
        Android:layout_alignParentRight="true"
        Android:layout_below="@id/shift_parent_nametitle"
        style="@style/wrap"
        />

Comment utiliser la RelativeLayout comme bouton pour réagir à un événement de clic si une partie de la zone est activée?

19
skooter

Ajoutez simplement un OnClickListener à votre RelativeLayout

20

J'ai un RelativeLayout appelé "RelativeMain1". Voici comment je le fais démarrer Activité

RelativeLayout relativeclic1 =(RelativeLayout)findViewById(R.id.RelativeMain1);
         relativeclic1.setOnClickListener(new View.OnClickListener(){
             @Override
             public void onClick(View v){
                 startActivityForResult(new Intent(A_My_Galaxy.this,C_Student_Book_Planet.class), 0);
             }
         });

Après avoir ajouté le onClickListener à votre mise en page, cela devrait fonctionner.

18
Gimsi

Ajoutez un "OnClickListener" à votre RelativeLayout.

Remarque: N'oubliez pas d'ajouter Android:clickable="true" à votre RelativeLayout.

6
dhuma1981
  1. Donnez à votre RelativeLayout un ID, comme si vous aviez tapé shift_parent_name
  2. Définissez votre RelativeLayout XML sur Android:clickable="true"

    Votre xml final ressemblera à ceci:

    <RelativeLayout
    Android:id="@+id/shift_parent_name"
    Android:layout_width="fill_parent"
    Android:layout_weight="0.25"
    Android:clickable="true">
    
  3. puis ajoutez le code dans votre méthode onCreate:

    RelativeLayout relative1 = (RelativeLayout) findViewById(R.id.shift_parent_name);
      relative1.setOnClickListener(new View.OnClickListener(){
        @Override
        public void onClick(View v){
            startActivity(new Intent(Main.this, About.class) );
        }
    });
    

Assurez-vous de changer les noms de vos activités, Main.this et About.class.

L'activité principale appelée Main.Java et la seconde est About.Java

3
Ihab Shoully
RelativeLayout rl=(RelativeLayout)findViewById(R.id.RelativeMain1);
         relativeclic1.setOnClickListener(new View.OnClickListener(){
             @Override
             public void onClick(View v){

             }
         });
0
user3774737