2

こんにちは、アクティビティでダイアログを使用するアプリを開発しています。ダイアログは画像を表示するだけで、ユーザーが画像に触れると、ダイアログは閉じられ、ダイアログを開始したアクティビティが前面に表示されます。ダイアログにはボタンがありません

このアプリの問題は、ダイアログでタッチ イベントを取得できないことです。この問題の解決策をインターネットで検索しようとしましたが、適切な実装方法が見つかりませんでした。誰でもこれを行う方法を提案できますか...

4

3 に答える 3

2

このようにしてみてください。

  final Dialog dialog = new Dialog(context);
        dialog.setContentView(R.layout.mylayout);
   //craete a layout with imageview
        dialog.setTitle("Title...");

        ImageView image = (ImageView) dialog.findViewById(R.id.image);
        image.setImageResource(R.drawable.yourimage);

        image.setOnClickListener(new View.OnClickListener(){
         public void onClick(View View3) {
             //your onclick functionality
         } });

        });

        dialog.show();
于 2012-04-13T14:14:37.453 に答える
0

ダイアログのメインレイアウト要素にView.OnClickListenerを設定すると、うまくいくと思います:-)

コード例:

    public class DialogActivity extends Activity implements OnClickListener
    {
        @Override
        protected void onCreate(Bundle savedInstanceState) 
        {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.dialog);
            LinearLayout linearlayout = (LinearLayout)findViewById(R.id.dialogMainLayout);
            linearlayout.setOnClickListener(this);
        }

        public void onClick(View v)
        {
            finish();
        }
    }

dialog.xml:

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical" 
        android:background="#FFA500"
        android:id="@+id/dialogMainLayout"
        >
        <TextView 
            android:layout_height="250dp"
            android:layout_width="fill_parent"
            android:text="TEST"
            android:background="#FFFFF0"
            />
    </LinearLayout>

最初に、ダイアログとして別のテーマを開始するアクティビティを作成してみました。ダイアログをテーマにしたアクティビティはまったく何もしませんでした。そのため、ダイアログをテーマにしたアクティビティで使用されるxmlファイルのルートレイアウト要素にonclicklistenerを設定すると、問題が解決する可能性があると思いました。

上記のコードが機能しました。それがあなたの問題を解決することを願っています:-)

于 2012-04-13T14:13:53.617 に答える
0

Android: タッチ時にダイアログ ウィンドウを閉じる

この質問は、あなたの質問に対する答えを提供するかもしれません。または、LayoutInflater を使用して、OnClickListener と AlertDialog.Builder を含む ImageButton または ImageView とその setView メソッドを含むカスタム ビューを作成し、このビューをダイアログの本体にすることができます。

于 2012-04-13T14:19:27.873 に答える