web-dev-qa-db-ja.com

警告ダイアログの画像ボタンにonclickリスナーを設定する方法

AlertDialogで膨らむImageButtonを含むレイアウトがあります。onClickリスナーはどこにどのように設定する必要がありますか?

これが私が使ってみたコードです:

    ImageButton ib = (ImageButton) findViewById(R.id.searchbutton);
    ib.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Toast.makeText(TravelBite.this, "test", Toast.LENGTH_SHORT).show();
        }
    });
16
Yvonne

あなたのコードにこのように入れてみてください

例:-アラートダイアログのオブジェクトが広告の場合、

 ImageButton ib = (ImageButton) ad.findViewById(R.id.searchbutton);
    ib.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Toast.makeText(TravelBite.this, "test", Toast.LENGTH_SHORT).show();
        }
    });
24
Jaydeep Khamar

上記のコードは有用であることが判明しましたが、コンテキストには「this」(「ad」ではなく)を使用しました。

    ImageButton ib = (ImageButton) this.findViewById(R.id.searchbutton);
    ib.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Toast.makeText(TravelBite.this, "test", Toast.LENGTH_SHORT).show();
        }

コピーして貼り付ける方が簡単です;-)

以前のコードのおかげで、それなしで上記の解決策を見つけました。

2
Ev Ert

コードでこれを試してください。

public void showAlertDialogButtonClicked(View view) {

    // create an alert builder
    AlertDialog.Builder builder = new AlertDialog.Builder(this);
    builder.setTitle("Name");

    // set the custom layout
    final View customLayout = getLayoutInflater().inflate(R.layout.custom_layout, null);
    builder.setView(customLayout);

    // add a button
    builder.setPositiveButton("OK", new DialogInterface.OnClickListener() {
        @Override
        public void onClick(DialogInterface dialog, int which) {
            // send data from the AlertDialog to the Activity
            EditText editText = customLayout.findViewById(R.id.editText);
            sendDialogDataToActivity(editText.getText().toString());
        }
    });

    // create and show the alert dialog
    AlertDialog dialog = builder.create();
    dialog.show();
}

このメソッドを使用

  <Button Android:layout_width="match_parent"
Android:layout_height="wrap_content" Android:onClick="showAlertDialogButtonClicked"/>
0