принятие событий клика в RelativeLayout - PullRequest
21 голосов
/ 01 июня 2010

У меня есть RelativeLayout с несколькими TextView детьми

<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"
        />

Как мне использовать RelativeLayout в качестве кнопки , чтобы реагировать на событие нажатия , если нажата какая-либо часть области?

Ответы [ 6 ]

21 голосов
/ 01 июня 2010

Просто добавьте OnClickListener в свой RelativeLayout

18 голосов
/ 05 июня 2011

У меня есть RelativeLayout под названием "RelativeMain1". Так я начинаю. Деятельность

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

После добавления onClickListener в ваш макет он должен работать.

7 голосов
/ 05 августа 2014

Добавьте «OnClickListener» в свой RelativeLayout.

Примечание: Не забудьте добавить android:clickable="true" в свой RelativeLayout.

5 голосов
/ 14 октября 2014
  1. Дайте вашему RelativeLayout удостоверение личности, как вы ввели shift_parent_name
  2. Установите для RelativeLayout XML значение android:clickable="true"

    Ваш окончательный XML будет выглядеть так:

    <RelativeLayout
    android:id="@+id/shift_parent_name"
    android:layout_width="fill_parent"
    android:layout_weight="0.25"
    android:clickable="true">
    
  3. затем добавьте код в свой метод 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) );
        }
    });
    

Обязательно измените названия своих занятий, Main.this и About.class.

Основная деятельность называется Main.java, а вторая - About.java

0 голосов
/ 13 июня 2019

Вы можете просто добавить это android:onClick="onClick"

0 голосов
/ 24 июля 2014
RelativeLayout rl=(RelativeLayout)findViewById(R.id.RelativeMain1);
         relativeclic1.setOnClickListener(new View.OnClickListener(){
             @Override
             public void onClick(View v){

             }
         });
...