Dialog Android中的TouchEvent

时间:2012-04-13 13:57:46

标签: android dialog

您好我正在开发一个应用程序,其中我正在使用活动对话框。对话框将只显示一张图片,当用户触摸图片时,对话框应该被忽略,并且启动对话框的活动应该在前面。 对话框没有任何按钮

我在这个应用程序中的问题是我无法在对话框中获取触摸事件,我尝试在互联网上搜索此问题的解决方案,但我找不到合适的方法实现它。那么任何人都可以建议一种方法......

3 个答案:

答案 0 :(得分: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();

答案 1 :(得分: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可能会解决问题。

我得到了上面的代码。希望它能解决你的问题: - )

答案 2 :(得分:0)

Android: Close dialog window on touch

这个问题可能会为您的问题提供答案。或者,您可以使用LayoutInflater创建一个自定义视图,其中包含带有OnClickListener和AlertDialog.Builder的ImageButton或ImageView及其setView方法,以使此视图成为对话框的主体。