web-dev-qa-db-ja.com

RelativeLayoutでクリックイベントを受け入れる

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

RelativeLayoutbuttonとして使用して、エリアの一部が押された場合にclick eventに反応するにはどうすればよいですか?

21
skooter

OnClickListener をRelativeLayoutに追加するだけです

21

「RelativeMain1」というRelativeLayoutがあります。これは私がそれを開始させる方法です

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をレイアウトに追加すると、機能するはずです。

19
Gimsi

「OnClickListener」をRelativeLayoutに追加します。

注:Android:clickable="true"をRelativeLayoutに追加することを忘れないでください。

7
dhuma1981
  1. 入力したshift_parent_nameのように、RelativeLayoutにIDを付けます
  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と呼ばれ、2番目はAbout.Javaです。

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

             }
         });
1
user3774737

これを追加するだけでAndroid:onClick="onClick"

0
Derek Dawson