Я ищу способ закрыть пользовательское диалоговое окно с помощью кнопки, которая находится внутри xml, используемого в диалоговом окне, или закрыть его, нажав в любом месте диалогового окна. Что у меня есть это; макет с кнопкой изображения, который вызывает пользовательский диалог с содержимым. У меня есть setCanceledOnTouchOutside (true); и это работает, но мне нужно диалоговое окно, чтобы заполнить большую часть экрана, и пользователю может быть трудно щелкнуть в небольшом доступном пространстве. Так как мне это сделать?
Мой код Java:
import android.app.Activity;
import android.app.Dialog;
import android.content.pm.ActivityInfo;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.ImageButton;
public class Rose extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
this.setRequestedOrientation(
ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
setContentView(R.layout.rose);
ImageButton b = (ImageButton) findViewById(R.id.imageButton1);
b.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
Dialog d1 = new Dialog(Rose.this);
d1.setContentView(R.layout.tariquet);
d1.setCanceledOnTouchOutside(true);
d1.show();
}
});
}
}
И мой XML:
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:fitsSystemWindows="true"
android:isScrollContainer="true"
android:minHeight="1100dp"
android:minWidth="650dp">
<ImageView
android:src="@drawable/rose_tariquet"
android:id="@+id/imageView1"
android:layout_height="fill_parent"
android:layout_width="fill_parent"></ImageView>
<Button android:text="X"
android:layout_height="wrap_content"
android:id="@+id/button1"
android:layout_width="55dp"
android:layout_gravity="right"></Button>
</FrameLayout>