2013-05-11 1 views
0

안녕하세요, 대화를하려고합니다. 그러나 대화 상자 전체가 보이지 않고 맨 아래의 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; 
        } 

       } 
      }; 
+0

대화 상자를 어떻게 표시합니까? 또한'setOnClickListener()'를 호출합니까? 각 버튼마다 다른 'OnClickListener'를 사용하는 것이 좋습니다. 이렇게하면 switch 문이 필요하지 않습니다. –

+0

첫 번째 경우에서 볼 수있는 것처럼 새로운 Dialog를 만듭니다 ... –

+0

대화 상자가 아직 팽창되지 않았기 때문에'setContentView()'가 무시됩니다. 일반적으로이 메서드는 onCreate() 메서드에서 호출해야합니다. –

답변

0

내 생각은 대화가 아직 팽창되지 않았기 때문에 typedialog.setContentView(R.layout.customtype_dialog);이 무시된다는 점이다. 문제를 해결하려면 Dialog 하위 클래스를 만들고 onCreate() 메서드에서 setContentView()을 호출해야합니다.

+0

보고 싶다면 전체 자바 클래스를 게시 할 수 있습니까? –

+0

@IlhamiDogan 아니요. 새로운 Android 프로젝트를 처음부터 시작하여 문제를 재현하려는 경우가 있습니다. 이렇게하면 코드에 집중할 수 있습니다. 이 작업을 수행하면 간단한 예제 코드를 볼 수있게되어 기쁩니다. –

+0

적어도 onCreate 메서드에서 setContentView를 볼 수 있습니다 ... –