2011-01-08 36 views
2

晚上好,程序員。我有個問題。請幫我解決它。 我正在寫一個android應用程序。我無法創建自定義對話框。我有錯誤或我的應用程序看起來非常糟糕。我的應用程序中有一些對話框。這裏是我的程序的一部分:如何在android應用程序中創建並顯示對話框?

該視圖非常可怕,不是嗎? 我希望其中一個佈局位於對話框中,但它出現在主要活動中。爲什麼?

dialogtable.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:id="@+id/LinearLayout01" 
android:orientation="vertical" 
android:layout_height="fill_parent" 
android:layout_width="fill_parent" 
> 
    <LinearLayout 
    android:id="@+id/LinearLayout02" 
    android:orientation="horizontal" 
    android:layout_height="fill_parent" 
    android:layout_width="fill_parent" 
    > 

    <TextView 
    android:id="@+id/textRows" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:gravity="left" 
    android:text="Amount of rows "/> 

    <TextView 
    android:id="@+id/textColumns" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:gravity="right" 
    android:text="Amount of columns"/> 

    </LinearLayout> 

    <LinearLayout 
    android:id="@+id/LinearLayout03" 
    android:orientation="horizontal" 
    android:layout_height="wrap_content" 
    android:layout_width="wrap_content" 
    > 

    <EditText 
    android:id="@+id/EditText01" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:inputType="number" 
    android:gravity="right"/> 


    <EditText 
    android:id="@+id/EditText02" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:gravity="right"/> 

    </LinearLayout> 

    <LinearLayout 
    android:id="@+id/LinearLayout04" 
    android:orientation="vertical" 
    android:layout_height="wrap_content" 
    android:layout_width="wrap_content" 
    > 

    <TextView 
    android:id="@+id/textBorder" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:gravity="right" 
    android:text="Width of border"/> 

    <EditText 
    android:id="@+id/EditText03" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:gravity="right"/> 

    </LinearLayout> 
</LinearLayout> 

從MainActivity

@Override 
protected Dialog onCreateDialog(int id) { 
    LayoutInflater inflater = (LayoutInflater) this.getSystemService(LAYOUT_INFLATER_SERVICE); 

    View layout = inflater.inflate(R.layout.dialogtable, (ViewGroup)findViewById(R.id.LinearLayout01)); 

    AlertDialog.Builder alert = null; 
    alert = new AlertDialog.Builder(this); 
    alert.setView(layout); 
    alert.setTitle("Create table"); 
    alert.setCancelable(false); 
    alert.setNegativeButton("Cancel",new DialogInterface.OnClickListener() { 

     @Override 
      public void onClick(DialogInterface dialog, int which) { 
      dialog.cancel(); 
     } 
    }); 

    alert.setPositiveButton("OK",new DialogInterface.OnClickListener() { 

     @Override 
      public void onClick(DialogInterface dialog, int which) { 

      Editable rows = fieldForRows.getText(); 
      Editable columns = fieldForColumns.getText(); 
      Editable border = fieldForWidthOfBroder.getText(); 


      TableAction tableAction = new TableAction(MainActivity.this.visualPane); 
      tableAction.insertTable(rows, columns, border); 
     } 
    }); 
    Dialog dialog = null; 
    dialog = new Dialog(this); 
    switch (id) { 
    case IDD_CUSTOM_INSERT_TABLE: 
     dialog.setTitle("Insert table"); 
     dialog.setContentView(R.layout.dialogtable); 
     return dialog; 
    case IDD_CUSTOM_INSERT_IMAGE: 
     dialog.setTitle("Insert image"); 
     return dialog; 
    default: 
     return alert.create(); 
    } 
} 

的代碼的應用程序的出現之前調用的ShowDialog():

http://s015.radikal.ru/i330/1101/d0/f7cc38852dc6.jpg

的一個該應用程序的調用ppearance的ShowDialog()之後:

http://s003.radikal.ru/i201/1101/f0/d1ebc436427f.jpg

爲什麼它看起來那麼可怕?哪裏不對?

回答

相關問題