最終:
main.xml布局檔案
<?xml version="1.0" encoding="utf-8"?><br /><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"<br />android:orientation="vertical" android:layout_width="fill_parent"<br />android:layout_height="fill_parent" android:id="@+id/mainlayout"><br /><TextView android:layout_width="fill_parent" android:id="@+id/textView1"<br />android:layout_height="wrap_content" android:text="歡迎資訊" /><br /><Button android:text="點擊彈出對話方塊" android:id="@+id/button1"<br />android:layout_width="wrap_content" android:layout_height="wrap_content"></Button><br /></LinearLayout><br />
popup.xml布局檔案
<?xml version="1.0" encoding="utf-8"?><br /><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"<br />android:layout_width="match_parent" android:layout_height="match_parent"<br />android:orientation="vertical"><br /><EditText android:text="EditText" android:id="@+id/editText1"<br />android:layout_width="wrap_content" android:layout_height="wrap_content"></EditText><br /><LinearLayout android:layout_width="match_parent"<br />android:layout_height="wrap_content" android:id="@+id/linearLayout1"><br /><Button android:text="確定" android:id="@+id/button1_sure"<br />android:layout_width="wrap_content" android:layout_height="wrap_content"></Button><br /><Button android:text="取消" android:id="@+id/button2_cancel"<br />android:layout_width="wrap_content" android:layout_height="wrap_content"></Button><br /></LinearLayout><br /></LinearLayout><br />
activity代碼:
package cn.com.chenzheng_java;</p><p>import android.app.Activity;<br />import android.graphics.Color;<br />import android.os.Bundle;<br />import android.text.InputType;<br />import android.view.LayoutInflater;<br />import android.view.View;<br />import android.view.View.OnClickListener;<br />import android.view.WindowManager.LayoutParams;<br />import android.widget.Button;<br />import android.widget.EditText;<br />import android.widget.PopupWindow;<br />import android.widget.TextView;</p><p>public class Test1 extends Activity {<br />TextView textView;<br />Button button;</p><p>@Override<br />public void onCreate(Bundle savedInstanceState) {<br />super.onCreate(savedInstanceState);<br />setContentView(R.layout.main);<br />button = (Button) findViewById(R.id.button1);<br />textView = (TextView) findViewById(R.id.textView1);<br />button.setOnClickListener(new OnClickListener() {</p><p>@Override<br />public void onClick(View v) {<br />initPopWindow();</p><p>}<br />});<br />}</p><p>/**<br /> * 建立一個popupWindow彈出框 popupWindow是一個阻塞式的彈出框,這就意味著在我們退出這個彈出框之前,程式會一直等待,<br /> * 這和AlertDialog不同哦,AlertDialog是非阻塞式彈出框,AlertDialog彈出的時候,後台可是還可以做其他事情的哦。<br /> */<br />private void initPopWindow() {<br />// 載入popupWindow的布局檔案<br />View contentView = LayoutInflater.from(getApplicationContext())<br />.inflate(R.layout.popup, null);<br />// 設定popupWindow的背景顏色<br />contentView.setBackgroundColor(Color.RED);<br />// 聲明一個彈出框<br />final PopupWindow popupWindow = new PopupWindow(<br />findViewById(R.id.mainlayout), 200, 300);<br />// 為彈出框設定自訂的布局<br />popupWindow.setContentView(contentView);</p><p>final EditText editText = (EditText) contentView.findViewById(R.id.editText1);<br />// 設定當你點擊editText時,彈出的輸入框是啥樣子的。這裡設定預設為數字輸入哦,這時候你會發現你輸入非數位東西是不行的哦<br />editText.setInputType(InputType.TYPE_CLASS_NUMBER);<br />/*<br /> * 這個popupWindow.setFocusable(true);非常重要,如果不在彈出之前加上這條語句,你會很悲劇的發現,你是無法在<br /> * editText中輸入任何東西的。該方法可以設定popupWindow擷取焦點的能力。當設定為true時,系統會捕獲到焦點給popupWindow<br /> * 上的組件。預設為false哦.該方法一定要在彈出對話方塊之前進行調用。<br /> */<br />popupWindow.setFocusable(true);<br />/*<br /> * popupWindow.showAsDropDown(View view)彈出對話方塊,位置在緊挨著view組件<br /> * showAsDropDown(View anchor, int xoff, int yoff)彈出對話方塊,位置在緊挨著view組件,x y 代表著位移量<br /> * showAtLocation(View parent, int gravity, int x, int y)彈出對話方塊<br /> * parent 父布局 gravity 依靠父布局的位置如Gravity.CENTER x y 座標值<br /> */<br />popupWindow.showAsDropDown(button);</p><p>Button button_sure = (Button) contentView.findViewById(R.id.button1_sure);<br />button_sure.setOnClickListener(new OnClickListener() {<br />@Override<br />public void onClick(View v) {<br />popupWindow.dismiss();<br />textView.setText("展示資訊:"+editText.getText());<br />}<br />});</p><p>Button button_cancel = (Button) contentView.findViewById(R.id.button2_cancel);<br />button_cancel.setOnClickListener(new OnClickListener() {<br />@Override<br />public void onClick(View v) {<br />popupWindow.dismiss();<br />}<br />});</p><p>}</p><p>}
-------------------------------------------------------
android中inputType屬性在EditText輸入值時啟動的虛擬鍵盤的風格有著重要的作用。這也大大的方便的操作。有時需要虛擬鍵盤只為字元或只為數字。所以inputType尤為重要。 <EditText android:layout_width="fill_parent" android:layout_height="wrap_content" android:inputType="phone" /> //文本類型,多為大寫、小寫和數字記號。 android:inputType="none" android:inputType="text" android:inputType="textCapCharacters" android:inputType="textCapWords" android:inputType="textCapSentences" android:inputType="textAutoCorrect" android:inputType="textAutoComplete" android:inputType="textMultiLine" android:inputType="textImeMultiLine" android:inputType="textNoSuggestions" android:inputType="textUri" android:inputType="textEmailAddress" android:inputType="textEmailSubject" android:inputType="textShortMessage" android:inputType="textLongMessage" android:inputType="textPersonName" android:inputType="textPostalAddress" android:inputType="textPassword" android:inputType="textVisiblePassword" android:inputType="textWebEditText" android:inputType="textFilter" android:inputType="textPhonetic" //數實值型別 android:inputType="number" android:inputType="numberSigned" android:inputType="numberDecimal" android:inputType="phone"//鍵盤 android:inputType="datetime" android:inputType="date"//日期鍵盤 android:inputType="time"//時間鍵盤 |