嗨,我正在开发一个应用程序,在该应用程序中我正在使用一个活动对话框。对话框将只显示一张图片,当用户触摸图片时,对话框应该关闭,并且启动对话框的活动应该出现在前面。对话框没有任何按钮。
我在这个应用程序中的问题是我无法在对话框上获取触摸事件,我尝试在互联网上搜索解决此问题的方法,但找不到合适的方法来实现它。那么任何人都可以建议一种方法来做到这一点......
试试这样。。
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();
我相信在 Dialog 的主要布局元素上设置一个 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();
}
}
对话框.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 方法,以使该视图成为对话框的主体。