• 自定义Dialog对话框


    布局文件:

    my_dlg.xml:

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:orientation="vertical"
        android:layout_width="300dp"
        android:layout_height="wrap_content"
        >
    <TextView
        android:layout_width="wrap_content" 
    	android:layout_height="wrap_content" 
    	android:text="使用者姓名:"
        />
    <EditText android:id="@+id/edtUserName"
        android:layout_width="fill_parent" 
        android:layout_height="wrap_content" 
        android:text=""
        />
    <TextView
        android:layout_width="wrap_content" 
    	android:layout_height="wrap_content" 
    	android:text="密码:"
        />
    <EditText android:id="@+id/edtPassword"
        android:layout_width="fill_parent" 
        android:layout_height="wrap_content"
        android:inputType="textPassword"
        android:text=""
        />
    <LinearLayout
        android:orientation="horizontal"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:gravity="center"
        >
    <Button android:id="@+id/btnOK"
        android:layout_width="160dp" 
        android:layout_height="wrap_content" 
        android:text="确定登陆"
        />
    <Button android:id="@+id/btnCancel"
        android:layout_width="80dp" 
        android:layout_height="wrap_content" 
        android:text="取消"
        />
    </LinearLayout>
    </LinearLayout>
    

      main.xml:

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:orientation="horizontal"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        >
    <LinearLayout
        android:orientation="vertical"
        android:layout_width="0dp"
        android:layout_height="fill_parent"
        android:layout_weight="1"
        />
    <LinearLayout
        android:orientation="vertical"
        android:layout_width="0dp"
        android:layout_height="fill_parent"
        android:layout_weight="1"
        >
    <Button android:id="@+id/btnLoginDlg"
       	android:layout_width="fill_parent" 
        android:layout_height="wrap_content" 
        android:text="登入系統"
        />
    <TextView android:id="@+id/txtResult"
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:text=""
    	/>
    </LinearLayout>
    <LinearLayout
        android:orientation="vertical"
        android:layout_width="0dp"
        android:layout_height="fill_parent"
        android:layout_weight="1"
        />
    </LinearLayout>
    

      

    package tw.android;
    
    import android.app.Activity;
    import android.app.Dialog;
    import android.os.Bundle;
    import android.view.View;
    import android.widget.*;
    
    public class Main extends Activity {
    
    	private Button mBtnLoginDlg;
    	private TextView mTxtResult;
    	private Dialog mLoginDlg;
    
    	/** Called when the activity is first created. */
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);
    
            setupViewComponent();
        }
        
        private void setupViewComponent() {
    		mBtnLoginDlg = (Button)findViewById(R.id.btnLoginDlg);
    		mTxtResult = (TextView)findViewById(R.id.txtResult);
    
    		mBtnLoginDlg.setOnClickListener(btnLoginDlgOnClkLis);
        }
    
        private Button.OnClickListener btnLoginDlgOnClkLis = new Button.OnClickListener() {
    		public void onClick(View v) {
    			mTxtResult.setText("");
    			
    			mLoginDlg = new Dialog(Main.this);//建立的Dialog对象必须制定它的拥有者。
    			mLoginDlg.setTitle("登陆系统");
    			mLoginDlg.setCancelable(false);//设置Cancelable属性,让用户无法使用“回上一页”按钮离开对话框
    			mLoginDlg.setContentView(R.layout.login_dlg);
    			Button loginBtnOK = (Button)mLoginDlg.findViewById(R.id.btnOK);
    			Button loginBtnCancel = (Button)mLoginDlg.findViewById(R.id.btnCancel);
    			loginBtnOK.setOnClickListener(loginDlgBtnOKOnClkLis);
    			loginBtnCancel.setOnClickListener(loginDlgBtnCancelOnClkLis);
    			mLoginDlg.show();			
    		}
    	};
    	
        private Button.OnClickListener loginDlgBtnOKOnClkLis = new Button.OnClickListener() {
    		public void onClick(View v) {
    			EditText edtUserName = (EditText)mLoginDlg.findViewById(R.id.edtUserName);
    			EditText edtPassword = (EditText)mLoginDlg.findViewById(R.id.edtPassword);
    
    			mTxtResult.setText("请你输入的使用者姓名:" + edtUserName.getText().toString() +
    								"密码:" + edtPassword.getText().toString());
    			mLoginDlg.cancel();
    		}
    	};
    	
        private Button.OnClickListener loginDlgBtnCancelOnClkLis = new Button.OnClickListener() {
    		public void onClick(View v) {
    			mTxtResult.setText("你按下"取消"按钮。");
    			mLoginDlg.cancel();
    		}
    	};
    }
    

      

  • 相关阅读:
    方法集锦3_字符串_python
    171. 乱序字符串
    149. 买卖股票的最佳时机(回顾)
    150. 买卖股票的最佳时机 II
    平方根的计算
    平方根的计算
    对话Roadstar投资人:一家自动驾驶公司之死(三) ...
    对话Roadstar投资人:一家自动驾驶公司之死(三) ...
    Axure遮罩 or 灯箱
    Axure遮罩 or 灯箱
  • 原文地址:https://www.cnblogs.com/zhoujn/p/4156181.html
Copyright © 2020-2023  润新知