こんにちは、アクティビティでダイアログを使用するアプリを開発しています。ダイアログは画像を表示するだけで、ユーザーが画像に触れると、ダイアログは閉じられ、ダイアログを開始したアクティビティが前面に表示されます。ダイアログにはボタンがありません。
このアプリの問題は、ダイアログでタッチ イベントを取得できないことです。この問題の解決策をインターネットで検索しようとしましたが、適切な実装方法が見つかりませんでした。誰でもこれを行う方法を提案できますか...
このようにしてみてください。
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();
ダイアログのメインレイアウト要素に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を設定すると、問題が解決する可能性があると思いました。
上記のコードが機能しました。それがあなたの問題を解決することを願っています:-)
この質問は、あなたの質問に対する答えを提供するかもしれません。または、LayoutInflater を使用して、OnClickListener と AlertDialog.Builder を含む ImageButton または ImageView とその setView メソッドを含むカスタム ビューを作成し、このビューをダイアログの本体にすることができます。