2014-01-17 8 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> 

IT는 경고 대화 상자를 구축하기위한 내 코드입니다 :

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보기를 설정하지만, 대화 상자는 볼 수 없습니다 :
당신에게 코드의 마지막 비트를 변경하려고 ~로 :

오른쪽보기를 표시해야합니다.

+0

만약 당신이'AlertDialog' 대신'Dialog'를 사용했는데, OP가 Dialog를 사용하고 싶다면 왜 'AlertDialog'를 사용해야합니까? 그리고 나는 그녀의 코드를 테스트하고 모든 것은 괜찮습니다. 우리는 먼저 코드의 문제점을 찾아야한다고 생각합니다. –

+0

@Shayanpourvatan 귀하의 권리를 미안 해요. 나는 그것을 업데이트했다. 그러나 문제는 그녀가'AlertDialog.Builder'에서 뷰를 오버라이드하고 버튼이나 다른 멋진 것들을 추가 할 수 없다는 것입니다. 그래서 당신이 그렇게한다면 쓸모 없게 될 것입니다. – bricklore

+0

그녀는 그녀의보기에 yes와 no 버튼을 가지고 있습니다. 하나의 해결책은'Dialog'로 AlertDialog를 바꾸는 것입니다.하지만 코드는 잘 작동합니다. 나는 그것을 테스트합니다. 문제는 xml과 함께, 내부 선형 레이아웃을 가지고 있지만 부모 레이아웃이있는 모든 뷰에 액세스하려는 경우 내부 선형 레이아웃을 가져와야 만합니다. –

관련 문제