java - ImageButton + 对话框问题

标签 java android xml layout

嘿,我正在尝试进行对话。但整个对话框没有显示,只有底部 3 个图像按钮显示:这里出了什么问题?当我单击对话框内的按钮时,即使我做了一个开关盒,也没有任何反应。

customtype_dialog.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".AutoMode"
    android:background="@color/black" >    

<RelativeLayout 
    android:id="@+id/dialog_relativeLayout1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_margin="3dp"    
    android:layout_above="@+id/dialog_relativeLayout2"
    android:layout_centerHorizontal="true" >

    <Button
        android:id="@+id/dialog_btn1"
        android:layout_width="60dp"
        android:layout_height="60dp"
        android:layout_margin="3dp"
        android:background="@drawable/track_run"
        android:layout_alignRight="@+id/dialog_relativeLayout1"
        android:layout_alignTop="@+id/dialog_relativeLayout1"
        />

    <Button 
        android:id="@+id/dialog_btn2"
        android:layout_width="60dp"
        android:layout_height="60dp"
        android:layout_margin="3dp"
        android:background="@drawable/track_bike"
        android:layout_alignTop="@+id/dialog_relativeLayout1"
        android:layout_toRightOf="@+id/dialog_btn1"
        />

    <Button 
        android:id="@+id/dialog_btn3"
        android:layout_width="60dp"
        android:layout_height="60dp"
        android:layout_margin="3dp"
        android:layout_toRightOf="@+id/dialog_btn2"
        android:background="@drawable/track_walk"
        />
 </RelativeLayout>

<RelativeLayout 
    android:id="@+id/dialog_relativeLayout2"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_margin="3dp"
    android:layout_centerHorizontal="true"
    android:layout_centerVertical="true"
    >

    <Button 
        android:id="@+id/dialog_btn4"
        android:layout_width="60dp"
        android:layout_height="60dp"
        android:layout_margin="3dp"
        android:background="@drawable/track_ski"
        android:layout_alignRight="@+id/dialog_relativeLayout2"
        android:layout_alignTop="@+id/dialog_relativeLayout2"
        />

    <Button 
        android:id="@+id/dialog_btn5"
        android:layout_width="60dp"
        android:layout_height="60dp"
        android:layout_margin="3dp"
        android:background="@drawable/track_boat"
        android:layout_alignTop="@+id/dialog_relativeLayout2"
        android:layout_toRightOf="@+id/dialog_btn4"
        />

    <Button 
        android:id="@+id/dialog_btn6"
        android:layout_width="60dp"
        android:layout_height="60dp"
        android:layout_margin="3dp"
        android:background="@drawable/track_snow_boarding"
        android:layout_alignTop="@+id/dialog_relativeLayout2"
        android:layout_toRightOf="@+id/dialog_btn5"
        />
    </RelativeLayout>
</RelativeLayout>




routeType = (ImageButton)findViewById(R.id.saveRoute_activityType);
        routeType.setOnClickListener(typeListener);

SaveRouteActivity.java

这是我的听众。

View.OnClickListener typeListener = new OnClickListener() {
                public void onClick(View v) {

                    switch(v.getId()){
                    case R.id.saveRoute_activityType:
                        Dialog typedialog = new Dialog(SaveRouteActivity.this);
                        typedialog.setContentView(R.layout.customtype_dialog);
                        typedialog.setTitle("Select type");
                        typedialog.setCancelable(true);
                        typedialog.show();
                        break;

                    case R.id.dialog_btn1:
                        txtType.setText("Run");
                        routeType.setBackgroundResource(R.drawable.track_run);
                        break;

                    case R.id.dialog_btn2:
                        txtType.setText("Bike");
                        routeType.setBackgroundResource(R.drawable.track_bike);
                        break;

                    case R.id.dialog_btn3:
                        txtType.setText("Walk");
                        routeType.setBackgroundResource(R.drawable.track_walk);
                        break;

                    case R.id.dialog_btn4:
                        txtType.setText("Ski");
                        routeType.setBackgroundResource(R.drawable.track_ski);
                        break;

                    case R.id.dialog_btn5:
                        txtType.setText("Boat");
                        routeType.setBackgroundResource(R.drawable.track_boat);
                        break;

                    case R.id.dialog_btn6:
                        txtType.setText("Snowboarding");
                        routeType.setBackgroundResource(R.drawable.track_snow_boarding);
                        break;
                    }

                }
            };

最佳答案

我的猜测是 typedialog.setContentView(R.layout.customtype_dialog); 被忽略,因为对话框尚未膨胀。要解决此问题,您应该创建 Dialog 的子类并在其 onCreate() 方法中调用 setContentView()

关于java - ImageButton + 对话框问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16501791/

相关文章:

java - 找不到运行 java 类

Java try-finally 竞争条件?

c# - 通过访问无效元素在 C# 中通过 XSD 验证 XML

java - Liferay 6.2 第一个应用程序构建失败 - 在 build-common-ivy.xml :81: HTTP Authorization failure

java - Java异步HttpClient请求似乎阻塞了主线程?

android - 从android中的listview获取选中复选框的文本?

android - 在Android上处理多种语言的问题

android - 有人可以解释 RecyclerView.LayoutManager 返回的 getItemCount 方法是什么吗?

c# - 在C#中从XML Schema生成代码的限制是什么?

xml - 如何使用 RelaxNG 检查属性是否唯一?