web-dev-qa-db-ja.com

Android StudioのViewパラメーターでメソッドを呼び出す方法

このメソッドを呼び出したい

public void openButton(View view) {
    Intent intent = new Intent(this, MainActivity.class);
    this.startActivity(intent);
}

このような簡単な方法から

public void simple(){
    openButton();
}

しかし、openButtonには1つのパラメーターViewが必要なので、それはできません。どうやって?

10
user2565280

まあ、あなたが提供したコードでは、通常、ある種のonCickListenerを使用します。

XMLファイルを開き、そのメソッドを呼び出すボタンにAndroid:onClick="openButton"を追加します。したがって、ボタンのXMLは次のようになります。

<Button
   Android:layout_width="wrap_content"
   Android:layout_height="wrap_content"
   Android:text="Click me!"
   . . . 
   Android:onClick="openButton" />

これにより、自動的にそのメソッドが呼び出され、ビューに渡されます。

他のオプションは、BatScreamがコメントで述べたように、とにかくビューを使用していないので、nullを渡すだけです。しかし、これは悪い習慣です-今回は機能しますが、一般的には、Androidが使用するシステムに従ってください。XMLでonClickを使用するだけです。


simpleをそのまま使用する必要がある場合は、次のようにしてください。

public void simple(){
    openButton(null);
}
7
Alex K

あなたはできるはずです

_ button.performClick(); 
_

openButton()buttons onClickに割り当てられたメソッドであると仮定します。つまり、XMLのどこかに、_Android:onClick="openButton"_を含むButtonがある可能性があります。次に、そのButtonをインスタンス化して変数buttonに割り当てている場合、ViewperformClick()メソッドを呼び出すとopenButton()が呼び出されます

2
codeMagic

シンプル。引数でビューを渡すだけです。

方法1:レイアウトファイルからopenButton()メソッドを呼び出す場合は、onClick属性を適用して次のようにメソッドを呼び出すだけです。

_<Button
   Android:layout_width="wrap_content"
   Android:layout_height="wrap_content"
   Android:text="Go to next screen"
   . . . 
   Android:onClick="openButton" />
_

方法2: OnClickListenerを設定してボタンのonclickから呼び出そうとしている場合は、次のようにOnClickListeneronClick(View view)メソッド内に取得するビューを渡すだけです。 :

_button.setOnClickListener(new OnClickListener(){

    @override
    public void onClick(View view)
    {
       openButton(view);
    }

});
_
0
Chintan Soni