2012-03-28 52 views
0

我知道我可以用頭來解決這個問題,但我寧願沒有。無論如何訪問取消按鈕的屬性?如何解開alertDialog中的按鈕?

我的代碼和AlertView的圖像如下。

enter image description here

for(int i = 0; i < 10; i++) 
      { 
       AlertDialog.Builder alert = new AlertDialog.Builder(this); 
       if(view.getId() == (getResources().getIdentifier("imageButton" + (i+1), "id", "en.deco.android.livehud"))) 
       { 


        //alert.setTitle("Notes"); 

        // Sets an EditText view to get user input 
        final EditText input = new EditText(this); 
        input.setText(table.seats[i].getPlayer().getNotes()); 
        alert.setView(input); 

        alert.setPositiveButton("Ok", new DialogInterface.OnClickListener() { 
        public void onClick(DialogInterface dialog, int whichButton) 
        { 
         for(int i = 0; i < 10; i++) 
         { 
          if(view.getId() == (getResources().getIdentifier("imageButton" + (i+1), "id", "en.deco.android.livehud"))) 
          { 
           table.seats[i].getPlayer().setNotes(input.getText().toString()); 
          } 
         } 

        } 
        }); 

        alert.setNegativeButton("Cancel", new DialogInterface.OnClickListener() { 
         public void onClick(DialogInterface dialog, int whichButton) { 
         // Canceled. 
         } 
        }); 
        alert.show(); 
        return true; 
       } 
      } 

回答

0

setMinimumWidth()完成這項工作。上面的代碼只是生成顯示像素而不是像素。

DisplayMetrics metrics = getResources().getDisplayMetrics(); 
         float dp = 250f; 
         int pixels = (int) (metrics.density * dp + 0.5f); 
         input.setMinimumWidth(pixels); 
1

我想你會需要你的EditText設置爲定義的寬度,或fill_parent/match_parent

+0

怎麼樣?在EditText文檔中,我看不到任何允許這樣做的內容。 – Deco 2012-03-29 17:31:45

+1

將新的LayoutParams對象分配給編輯文本。使用充氣的XML佈局而不是一個View可能更容易。 – Phix 2012-03-30 09:32:50

+0

我給它一個去,Fill Parent和Wrap_Content沒有效果(內容已經被默認包裝了?)。設置爲固定大小的工作,但我希望寬度是可擴展的,所以我最終的解決方案對我來說更好。非常感謝。 – Deco 2012-03-30 14:15:03

0

你可以設置視圖爲您的否定按鈕,像這樣:

alert.setNegativeButton(R.id.cancelButton, new OnClickListener() { 

      @Override 
      public void onClick(DialogInterface dialog, int which) { 
       // Some action to be done when clicked.. 

      } 
     }); 

,你可以創建一個按鈕佈局這樣一個根:

<?xml version="1.0" encoding="utf-8"?> 
<Button xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/cancelButton" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="Cancel"> 
</Button> 

在那裏你會設置按鈕的寬度通常爲wrap_content

編輯:還有一個 AlertDialog.Builder setNegativeButton (int textId, DialogInterface.OnClickListener listener)

+0

我不認爲這有效。 setNegativeButton不會將我們的customView設置爲negativeButton。第一個參數僅用於在按鈕上顯示文本。 [鏈接] http://developer.android.com/reference/android/app/AlertDialog.Builder.html#setNegativeButton(java.lang.CharSequence,android.content.DialogInterface.OnClickListener) 當試圖取消被取代通過假而按鈕仍然有兩行。有沒有其他方法可以將我們自己的視圖設置爲否定按鈕? – Deco 2012-03-29 16:58:27