嘿,我正在嘗試做一個對話框。但整個對話沒有顯示出來,只有最底層的3個圖像按鈕正在顯示:這裏有什麼問題?而當我點擊對話框內的按鈕時,即使我做了一個開關盒,也沒有任何反應。ImageButton +對話框問題
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;
}
}
};
如何顯示對話框?另外,你是否調用'setOnClickListener()'?您可能需要考慮爲每個按鈕使用不同的「OnClickListener」。這將消除對switch語句的需要。 – 2013-05-11 21:17:36
我做了一個新的對話框,你可以在第一個例子中看到... – 2013-05-11 21:30:10
我的猜測是'setContentView()'被忽略,因爲對話框還沒有被充值。通常你應該在'onCreate()'方法中調用這個方法。 – 2013-05-11 21:33:32