2014-01-17 49 views
0

我想爲我的警報對話框設置自定義視圖。實際上,我有一個網格視圖,並且我想在每個項目單擊時顯示一個對話框,我構建了一個ToastWarning函數,並構建了我的警報對話框。這是我的自定義視圖的Xml:imageview,textview和2按鈕。 但這段代碼不工作,爲什麼?如何在Android中設置AlertDialog的視圖

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="fill_parent" 
android:layout_height="wrap_content" 
android:orientation="vertical" 
android:id="@+id/linear_toast" 
android:gravity="right" 
android:background="@drawable/white" 

> 
<LinearLayout 
android:layout_width="fill_parent" 
android:layout_height="wrap_content" 
android:orientation="horizontal" 
android:gravity="right" 
> 
<TextView 
    android:id="@+id/tv_Toast" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="TextView" 
    android:textSize="18sp" 
    android:textColor="#FFFFFF" 
    android:layout_margin="10dp" /> 


<ImageView 
    android:id="@+id/iv_toast" 
    android:layout_width="30dp" 
    android:layout_height="30dp" 
    android:layout_marginRight="7dp" 
    android:layout_marginTop="10dp" 

    /> 

</LinearLayout> 
<LinearLayout 
android:layout_width="fill_parent" 
android:layout_height="wrap_content" 
android:orientation="horizontal" 
android:gravity="right" 
android:weightSum="10" 
android:padding="5dp"> 

<Button 
    android:id="@+id/bt_no" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="Button" 
    android:layout_weight="5" 
    android:textColor="#FFFFFF" /> 

<Button 
    android:id="@+id/bt_yes" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="Button" 
    android:layout_weight="5" 
    android:textColor="#FFFFFF" /> 
</LinearLayout> 
</LinearLayout> 

這是我爲建設一個警告對話框代碼:

private void ToastWarning() { 
LayoutInflater inflater = getLayoutInflater(); 
    View view = inflater.inflate(R.layout.toast, null); 

iv_alert=(ImageView)view.findViewById(R.id.iv_toast); 
      tv_alert=(TextView)view.findViewById(R.id.tv_Toast); 
      bt_yes=(Button)view.findViewById(R.id.bt_yes); 
      bt_yes=(Button)view.findViewById(R.id.bt_no); 
      iv_alert.setBackgroundResource(R.drawable.facebook); 

      tv_alert.setTypeface(face); 
      bt_yes.setTypeface(face); 
      bt_no.setTypeface(face); 
      bt_yes.setText(PersianReshape.reshape("بله")); 
      bt_no.setText(PersianReshape.reshape("خیر")); 
      tv_alert.setText(PersianReshape.reshape("فیلدهای مورد نظر پر شود.")); 

AlertDialog MyDialog; 
      AlertDialog.Builder builder = new AlertDialog.Builder(this); 
      builder.setView(view); 
      MyDialog=builder.create(); 
      MyDialog.show(); 
} 
+0

是什麼問題? 「不工作」是什麼意思? –

+0

問題是當我點擊,它的力量關閉 – eli

+0

點擊監聽器在哪裏?你必須首先在你的按鈕 –

回答

0

不設置Alertdialog.Builder視圖自定義視圖,但對話框查看:
試圖改變你的代碼最後一位到:

AlertDialog MyDialog; 
AlertDialog.Builder builder = new AlertDialog.Builder(this); 
//maybe set positive/negative buttons here 
AlertDialog d = builder.create(); 
d.setView(view); 
d.show(); 

然後它應該顯示正確的看法。

+0

你使用'Dialog'而不是'AlertDialog',如果OP想使用Dialog,那麼爲什麼要使用'AlertDialog'?我測試她的代碼,所有的事情都可以,我想我們應該先找到代碼的問題。 –

+0

@Shayanpourvatan對不起你的權利。我已經更新了。但問題是她重寫'AlertDialog.Builder'的視圖,然後你不能添加按鈕或任何其他好東西。所以這是沒用的,如果你這樣做 – bricklore

+0

她是肯定的,沒有按鈕在她的視圖中,一種解決方案是改變'AlertDialog'與'Dialog',但代碼工作正常,我測試。問題在於xml,她具有內部線性佈局,但想要使用父佈局訪問所有視圖,她必須獲取內部線性佈局,然後獲取視圖的 –

相關問題