안녕하세요, 대화를하려고합니다. 그러나 대화 상자 전체가 보이지 않고 맨 아래의 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 문이 필요하지 않습니다. –
첫 번째 경우에서 볼 수있는 것처럼 새로운 Dialog를 만듭니다 ... –
대화 상자가 아직 팽창되지 않았기 때문에'setContentView()'가 무시됩니다. 일반적으로이 메서드는 onCreate() 메서드에서 호출해야합니다. –