在Android中调用自定义对话框

在Android中调用自定义对话框,android,android-intent,android-fragments,Android,Android Intent,Android Fragments,在导航抽屉中,当我想要创建自定义对话框时,我在Fragment类中调用Fragment类,然后得到错误 04-14 11:20:46.974: E/AndroidRuntime(5245): FATAL EXCEPTION: main 04-14 11:20:46.974: E/AndroidRuntime(5245): java.lang.RuntimeException: Binary XML file line #17: You must supply a layout_heigh

在导航抽屉中,当我想要创建自定义对话框时,我在Fragment类中调用Fragment类,然后得到错误

 04-14 11:20:46.974: E/AndroidRuntime(5245): FATAL EXCEPTION: main
 04-14 11:20:46.974: E/AndroidRuntime(5245):
 java.lang.RuntimeException: Binary XML file line #17: You must supply
 a layout_height attribute. 04-14 11:20:46.974: E/AndroidRuntime(5245):
    at
 android.content.res.TypedArray.getLayoutDimension(TypedArray.java:491)
 04-14 11:20:46.974: E/AndroidRuntime(5245):    at
 android.view.ViewGroup$LayoutParams.setBaseAttributes(ViewGroup.java:5457)
 04-14 11:20:46.974: E/AndroidRuntime(5245):    at
 android.view.ViewGroup$MarginLayoutParams.<init>(ViewGroup.java:5592)
 04-14 11:20:46.974: E/AndroidRuntime(5245):    at
 android.widget.FrameLayout$LayoutParams.<init>(FrameLayout.java:610)
 04-14 11:20:46.974: E/AndroidRuntime(5245):    at
 android.widget.FrameLayout.generateLayoutParams(FrameLayout.java:554)
 04-14 11:20:46.974: E/AndroidRuntime(5245):    at
 android.widget.FrameLayout.generateLayoutParams(FrameLayout.java:56)
 04-14 11:20:46.974: E/AndroidRuntime(5245):    at
 android.view.LayoutInflater.inflate(LayoutInflater.java:477) 04-14
 11:20:46.974: E/AndroidRuntime(5245):  at
 android.view.LayoutInflater.inflate(LayoutInflater.java:396) 04-14
 11:20:46.974: E/AndroidRuntime(5245):  at
 com.dwellesque.MyProfile.onCreateView(MyProfile.java:54) 04-14
 11:20:46.974: E/AndroidRuntime(5245):  at
 android.app.FragmentManagerImpl.moveToState(FragmentManager.java:829)
 04-14 11:20:46.974: E/AndroidRuntime(5245):    at
 android.app.FragmentManagerImpl.moveToState(FragmentManager.java:1035)
 04-14 11:20:46.974: E/AndroidRuntime(5245):    at
 android.app.BackStackRecord.run(BackStackRecord.java:635) 04-14
 11:20:46.974: E/AndroidRuntime(5245):  at
 android.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1397)
 04-14 11:20:46.974: E/AndroidRuntime(5245):    at
 android.app.FragmentManagerImpl$1.run(FragmentManager.java:426) 04-14
 11:20:46.974: E/AndroidRuntime(5245):  at
 android.os.Handler.handleCallback(Handler.java:615) 04-14
 11:20:46.974: E/AndroidRuntime(5245):  at
 android.os.Handler.dispatchMessage(Handler.java:92) 04-14
 11:20:46.974: E/AndroidRuntime(5245):  at
 android.os.Looper.loop(Looper.java:137) 04-14 11:20:46.974:
 E/AndroidRuntime(5245):    at
 android.app.ActivityThread.main(ActivityThread.java:4745) 04-14
 11:20:46.974: E/AndroidRuntime(5245):  at
 java.lang.reflect.Method.invokeNative(Native Method) 04-14
 11:20:46.974: E/AndroidRuntime(5245):  at
 java.lang.reflect.Method.invoke(Method.java:511) 04-14 11:20:46.974:
 E/AndroidRuntime(5245):    at
 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)
 04-14 11:20:46.974: E/AndroidRuntime(5245):    at
 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553) 04-14
 11:20:46.974: E/AndroidRuntime(5245):  at
 dalvik.system.NativeStart.main(Native Method)
04-14 11:20:46.974:E/AndroidRuntime(5245):致命异常:主
04-14 11:20:46.974:E/AndroidRuntime(5245):
java.lang.RuntimeException:二进制XML文件行#17:必须提供
布局的高度属性。04-14 11:20:46.974:E/AndroidRuntime(5245):
在
android.content.res.TypedArray.getLayoutDimension(TypedArray.java:491)
04-1411:20:46.974:E/AndroidRuntime(5245):在
ViewGroup$LayoutParams.setBaseAttributes(ViewGroup.java:5457)
04-1411:20:46.974:E/AndroidRuntime(5245):在
ViewGroup$MarginLayoutParams(ViewGroup.java:5592)
04-1411:20:46.974:E/AndroidRuntime(5245):在
FrameLayout$LayoutParams.(FrameLayout.java:610)
04-1411:20:46.974:E/AndroidRuntime(5245):在
android.widget.FrameLayout.generateLayoutParams(FrameLayout.java:554)
04-1411:20:46.974:E/AndroidRuntime(5245):在
android.widget.FrameLayout.generateLayoutParams(FrameLayout.java:56)
04-1411:20:46.974:E/AndroidRuntime(5245):在
膨胀(LayoutInflater.java:477)04-14
11:20:46.974:E/AndroidRuntime(5245):在
膨胀(LayoutInflater.java:396)04-14
11:20:46.974:E/AndroidRuntime(5245):在
onCreateView(MyProfile.java:54)04-14
11:20:46.974:E/AndroidRuntime(5245):在
android.app.FragmentManagerImpl.moveToState(FragmentManager.java:829)
04-1411:20:46.974:E/AndroidRuntime(5245):在
FragmentManagerImpl.moveToState(FragmentManager.java:1035)
04-1411:20:46.974:E/AndroidRuntime(5245):在
android.app.BackStackRecord.run(BackStackRecord.java:635)04-14
11:20:46.974:E/AndroidRuntime(5245):在
FragmentManagerImpl.execPendingActions(FragmentManager.java:1397)
04-1411:20:46.974:E/AndroidRuntime(5245):在
android.app.FragmentManagerImpl$1.run(FragmentManager.java:426)04-14
11:20:46.974:E/AndroidRuntime(5245):在
handleCallback(Handler.java:615)04-14
11:20:46.974:E/AndroidRuntime(5245):在
android.os.Handler.dispatchMessage(Handler.java:92)04-14
11:20:46.974:E/AndroidRuntime(5245):在
android.os.Looper.loop(Looper.java:137)04-14 11:20:46.974:
E/AndroidRuntime(5245):在
android.app.ActivityThread.main(ActivityThread.java:4745)04-14
11:20:46.974:E/AndroidRuntime(5245):在
java.lang.reflect.Method.Invokenactive(本机方法)04-14
11:20:46.974:E/AndroidRuntime(5245):在
java.lang.reflect.Method.invoke(Method.java:511)04-14 11:20:46.974:
E/AndroidRuntime(5245):在
com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)
04-1411:20:46.974:E/AndroidRuntime(5245):在
com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)04-14
11:20:46.974:E/AndroidRuntime(5245):在
dalvik.system.NativeStart.main(本机方法)
我的java代码就是我调用自定义对话框的地方

public class MyProfile extends Fragment {

Button btnSave,btnChange;
EditText txtFname;
EditText txtLane;
EditText txtEmil;
EditText txtCity;
EditText txtState;
EditText txtZip;
String strFname,strLname,strEmail,strCity,strState,strZip;
Document doc;
ArrayList<String> mylist= new ArrayList<String>();
SharedPreferences preferences = null;
String prefusername,prefemail,prefpass;
/*ArrayList<String> arFname= new ArrayList<String>();
ArrayList<String> arLname= new ArrayList<String>();
ArrayList<String> arEmail= new ArrayList<String>();
ArrayList<String> arCity= new ArrayList<String>();
ArrayList<String> arState= new ArrayList<String>();
ArrayList<String> arZip= new ArrayList<String>(); */
public MyProfile(){

}

 public View onCreateView(LayoutInflater inflater, ViewGroup container,
         Bundle savedInstanceState) {

     View rootView = inflater.inflate(R.layout.myprofile, container, false);

     preferences=getActivity().getSharedPreferences("Login", getActivity().MODE_PRIVATE);
     prefusername=preferences.getString("USERNAME", "DEFAULT");
     prefemail=preferences.getString("EMAIL", "DEFAULT");
     prefpass= preferences.getString("PASSWORD", "DEFAULT");
     txtFname= (EditText) rootView.findViewById(R.id.edit_Profile_Fname);
     txtLane =(EditText) rootView.findViewById(R.id.edit_Profile_Lname);
     txtEmil= (EditText) rootView.findViewById(R.id.edit_Profile_email);
     txtCity= (EditText) rootView.findViewById(R.id.edit_Profile_City);
     txtState= (EditText) rootView.findViewById(R.id.State_spinner);
     txtZip = (EditText) rootView.findViewById(R.id.edit_Profile_Zip);
      btnChange = (Button) rootView.findViewById(R.id.edit_Profile_PASSWORD);

      strFname= getEditText(txtFname);
      strLname= getEditText(txtLane);
      strCity= getEditText(txtCity);
      strState=  getEditText(txtState);
      strEmail= getEditText(txtEmil);
      strZip= getEditText(txtZip);

      btnChange.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            Toast.makeText(getActivity(), "CLICK", Toast.LENGTH_LONG).show();
                            changePass();
        }
    });



     return rootView;
 }



 void changePass()
 {
        final Dialog dialog = new Dialog(getActivity());
        dialog.setContentView(R.layout.change_password);
        dialog.setTitle("Change password");
        final EditText txtPassword = (EditText) dialog.findViewById(R.id.changepwd);
        final EditText txtVpassword = (EditText) dialog.findViewById(R.id.changevpwd);
        Button btnOk = (Button) dialog.findViewById(R.id.btnch_ok);
        Button btnCancle = (Button) dialog.findViewById(R.id.btnch_cancle);


 }
 }
公共类MyProfile扩展了片段{
按钮btnSave,btnChange;
编辑文本txtFname;
编辑文本txtLane;
编辑文本txtEmil;
编辑文本txtCity;
编辑文本txtState;
编辑文本txtZip;
字符串strFname、strLname、strEmail、strCity、strState、strZip;
文件文件;
ArrayList mylist=新的ArrayList();
SharedReferences首选项=null;
字符串prefusername、prefemail、prefpass;
/*ArrayList arFname=新的ArrayList();
ArrayList arLname=新的ArrayList();
ArrayList arEmail=新的ArrayList();
ArrayList arCity=新的ArrayList();
ArrayList arState=新的ArrayList();
ArrayList arZip=新的ArrayList()*/
公共MyProfile(){
}
创建视图上的公共视图(布局、充气机、视图组容器、,
Bundle savedInstanceState){
视图根视图=充气机。充气(R.layout.myprofile,container,false);
首选项=getActivity().GetSharedReferences(“登录”,getActivity().MODE_PRIVATE);
prefusername=preferences.getString(“用户名”、“默认值”);
prefemail=preferences.getString(“电子邮件”,“默认”);
prefpass=preferences.getString(“密码”、“默认值”);
txtFname=(EditText)rootView.findviewbyd(R.id.edit\u Profile\u Fname);
txtLane=(EditText)rootView.findviewbyd(R.id.edit\u Profile\u Lname);
txtEmil=(EditText)rootView.findviewbyd(R.id.edit\u Profile\u email);
txtCity=(EditText)rootView.findviewbyd(R.id.edit\u Profile\u City);
txtState=(EditText)rootView.findviewbyd(R.id.State\u微调器);
txtZip=(EditText)rootView.findviewbyd(R.id.edit\u Profile\u Zip);
btnChange=(按钮)rootView.findviewbyd(R.id.edit\u Profile\u PASSWORD);
strFname=getEditText(txtFname);
strLname=getEditText(txtLane);
strCity=getEditText(txtCity);
strState=getEditText(txtState);
strEmail=getEditText(txtEmil);
strZip=getEditText(txtZip);
setOnClickListener(新的OnClickListener(){
@凌驾
公共void onClick(视图v){
//TODO自动生成的方法存根
Toast.makeText(getActivity(),“CLICK”,Toast.LENGTH_LONG.show();
changePass();
}
});
返回rootView;
}
void changePass()
{
最终对话框=新建对话框(getActivity());
setContentView(R.layout.change_密码);
对话框。设置标题(“更改密码”);
final EditText txtPassword=(EditText)dialog.findviewbyd(R.id.changepwd);
final EditText txtVpassword=(EditText)dialog.findViewById(R.id.changevpwd);
按钮btnOk=(按钮)对话框.findViewById(R.id.btnch\u ok);
按钮BTNCNCLE=(按钮)对话框.findViewById(R.id.btnch\u cancle);
}
}
对话框更改密码xml代码在这里

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="@drawable/bg" >

<LinearLayout
    android:id="@+id/text"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:layout_centerHorizontal="true"
    android:layout_centerVertical="true"
    android:gravity="center"
    android:orientation="vertical" >



    <EditText
        android:id="@+id/changepwd"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:ems="10"
        android:singleLine="true"
        android:password="true"
        android:hint="Password" >

        <requestFocus />
    </EditText>

    <EditText
        android:id="@+id/changevpwd"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:ems="10"
        android:hint="Verify Password"
        android:password="true"
        android:singleLine="true" />

    <LinearLayout 
   android:layout_height="wrap_content"
        android:layout_width="wrap_content" 
        android:layout_below="@+id/edit_Verify"
        android:orientation="horizontal" android:layout_centerInParent="true">


        <Button
            android:id="@+id/btnch_ok"
            android:layout_width="100dip"
            android:layout_height="wrap_content"
            android:background="@drawable/rounded"
            android:text="Ok" >
            </Button>


        <Button
            android:id="@+id/btnch_cancle"
            android:layout_width="100dip"
            android:layout_height="wrap_content"
            android:layout_below="@+id/check_Pwd"
            android:layout_marginLeft="20dip"
            android:background="@drawable/rounded"
            android:text="Cancel" >
                </Button>
    </LinearLayout>

    </LinearLayout>

 </RelativeLayout>

myprofile布局在这里

 <?xml version="1.0" encoding="utf-8"?>
 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:ads="http://schemas.android.com/apk/lib/com.google.ads"
android:layout_gravity="center" 
android:layout_width="fill_parent" android:layout_height="fill_parent"
 android:id="@+id/myprofilelayout"
android:background="@drawable/bg">


<ScrollView android:layout_width="fill_parent"
    android:layout_height="fill_parent" 
    android:scrollbars="none"
    android:layout_marginLeft="20dip" 
    android:layout_marginRight="20dip"
    android:layout_marginTop="10dip" 
    android:layout_below="@+id/rel_Profile">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_centerVertical="true"
        android:orientation="vertical" >

        <LinearLayout android:layout_width="fill_parent"
            android:layout_height="fill_parent" 
        >
            <!-- First Name -->
            <TextView android:layout_width="fill_parent"
                android:layout_height="wrap_content" 
                android:id="@+id/txt_profile_Fname"
                android:text="First Name"
                 android:textStyle="bold"
                android:textColor="#4a596e"
                android:textSize="14dip" 
                android:layout_weight="0.5"></TextView>
            <EditText android:layout_width="fill_parent"
               android:inputType="textCapWords"

                android:layout_height="wrap_content" 
                android:id="@+id/edit_Profile_Fname"
                 android:background="@android:drawable/editbox_background"
                android:singleLine="true" 
                android:layout_weight="0.25"></EditText>
        </LinearLayout>

        <LinearLayout android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:layout_marginTop="10dip" >
            <!--Last Name -->
            <TextView android:layout_width="fill_parent"
                android:layout_height="wrap_content" android:id="@+id/txt_profile_Lname"
                android:text="Last Name" android:textStyle="bold"
                android:textColor="#4a596e"
                android:textSize="14dip" android:layout_weight="0.5"></TextView>
            <EditText android:layout_width="fill_parent"
                android:inputType="textCapWords"
                 android:background="@android:drawable/editbox_background"
                android:layout_height="wrap_content" android:id="@+id/edit_Profile_Lname"
                android:layout_weight="0.25"></EditText>
        </LinearLayout>

        <LinearLayout android:layout_width="fill_parent"
            android:layout_height="fill_parent" android:layout_marginTop="10dip"  >
            <!--Last Name -->
            <TextView android:layout_width="fill_parent"
                android:layout_height="wrap_content" android:id="@+id/txt_profile_email"
                android:text="Email" android:textStyle="bold"
                android:textColor="#4a596e"
                android:textSize="14dip" android:layout_weight="0.5"></TextView>
            <EditText android:layout_width="fill_parent"
                android:textIsSelectable="false"
               android:inputType="textCapWords"
                 android:background="@android:drawable/editbox_background"
                android:layout_height="wrap_content" android:id="@+id/edit_Profile_email"
                android:singleLine="true"
                android:layout_weight="0.25"></EditText>
        </LinearLayout>

        <LinearLayout android:layout_width="fill_parent"
            android:layout_height="fill_parent" android:layout_marginTop="10dip" >
            <!-- City -->
            <TextView android:layout_width="fill_parent"
                android:layout_height="wrap_content" android:id="@+id/txt_profile_City"
                android:text="City" android:textStyle="bold" android:textSize="14dip"
                android:layout_below="@+id/keyword1"
                android:textColor="#4a596e"
                android:layout_weight="0.5"></TextView>
            <EditText android:layout_width="fill_parent"
                android:inputType="textCapWords"
                 android:background="@android:drawable/editbox_background"
                android:layout_height="wrap_content" android:id="@+id/edit_Profile_City"
                android:singleLine="true" android:layout_weight="0.25"></EditText>
        </LinearLayout>










        <LinearLayout android:layout_width="fill_parent"
            android:layout_height="fill_parent" android:layout_marginTop="10dip" >
            <!-- Zip -->
            <TextView android:layout_width="fill_parent"
                android:layout_height="wrap_content" android:id="@+id/txt_profile_Zip1"
                android:textColor="#4a596e"
            android:text="State"  android:textStyle="bold" android:textSize="14dip"
                android:layout_weight="0.5"></TextView>
            <EditText android:layout_width="fill_parent"
                 android:background="@android:drawable/editbox_background"
                android:layout_height="wrap_content"  android:id="@+id/State_spinner"
               android:layout_weight="0.25"
                 android:singleLine="true"></EditText>
        </LinearLayout>





        <LinearLayout android:layout_width="fill_parent"
            android:layout_height="fill_parent" android:layout_marginTop="10dip"  >
            <!-- Zip -->
            <TextView android:layout_width="fill_parent"
                android:layout_height="wrap_content" android:id="@+id/txt_profile_Zip"
                android:textColor="#4a596e"
                android:text="ZIP" android:textStyle="bold" android:textSize="14dip"
                android:layout_weight="0.5"></TextView>
            <EditText android:layout_width="fill_parent"
                 android:background="@android:drawable/editbox_background"
                android:layout_height="wrap_content" 
                android:id="@+id/edit_Profile_Zip"
                 android:layout_weight="0.25"
                 android:singleLine="true"></EditText>
        </LinearLayout>

        <LinearLayout
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="20dip"
            android:gravity="center" >

            <!-- Password -->

            <Button
            android:id="@+id/edit_Profile_PASSWORD"
            android:layout_width="200dip"
            android:layout_height="45dip"
           android:background="@drawable/rounded"
            android:textSize="18sp"
            android:text="Change Password" >
            </Button>
        </LinearLayout>



        <Button android:layout_width="200dip"
            android:layout_gravity="center" 
            android:layout_height="45dip"
            android:layout_marginTop="10dip" 
             android:background="@drawable/rounded"
             android:text="Save"
              android:textSize="18sp"
            android:id="@+id/profile_save"></Button>

    </LinearLayout>



</ScrollView>


</RelativeLayout>

<android.support.v4.widget.DrawerLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/drawer_layout"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">
<!-- The main content view -->
<FrameLayout
        android:id="@+id/content_frame"
        android:layout_width="match_parent"
        android:layout_height="match_parent"/>
<!-- The navigation drawer -->
<ListView

        android:id="@+id/left_drawer"
        android:layout_width="240dp"
        android:layout_height="match_parent"
        android:layout_gravity="start"
        android:choiceMode="singleChoice"
        android:divider="#200000"
        android:dividerHeight="0.5dp"
        android:background="#FFFFFF"/>
 </android.support.v4.widget.DrawerLayout>
 android:layout_height="wrap_content"
04-14 11:20:46.974: E/AndroidRuntime(5245):    at android.view.ViewGroup$MarginLayoutParams.<init>(ViewGroup.java:5592) 
04-14 11:20:46.974: E/AndroidRuntime(5245):    at android.widget.FrameLayout$LayoutParams.<init>(FrameLayout.java:610)