標籤:風飛雪未揚 從零開始學android android快顯功能表 popwindow
popupwindow組件是在點擊按鈕或進行某項操作後在螢幕上彈出的視窗,並進行UI更新,資料處理等一些操作
常用的方法
| 1 |
public PopupWindow(Context context) |
構造 |
建立PopupWindow執行個體 |
| 2 |
public PopupWindow(View contentView, int width, int height) |
構造 |
建立PopupWindow執行個體,同時傳入快顯視窗的顯示寬度和高度 |
| 3 |
public PopupWindow(View contentView, int width, int height, boolean focusable) |
構造 |
建立PopupWindow執行個體,同時傳入快顯視窗的顯示寬度和高度以及是否設定焦點 |
| 4 |
public void dismiss() |
普通 |
隱藏視窗 |
| 5 |
public int getHeight() |
普通 |
取得快顯視窗的高度 |
| 6 |
public int getWidth() |
普通 |
取得快顯視窗的寬度 |
| 7 |
public boolean isShowing() |
普通 |
判斷視窗是否顯示 |
| 8 |
public void setAnimationStyle(int animationStyle) |
普通 |
為快顯視窗設定動畫 |
| 9 |
public void setContentView(View contentView) |
普通 |
設定顯示組件 |
| 10 |
public void setFocusable(boolean focusable) |
普通 |
設定是否獲得焦點 |
| 11 |
public void setHeight(int height) |
普通 |
設定快顯視窗高度 |
| 12 |
public void setWidth(int width) |
普通 |
設定快顯視窗寬度 |
| 13 |
public void setOnDismissListener(PopupWindow.OnDismissListener onDismissListener) |
普通 |
設定快顯視窗隱藏後的事件監聽 |
分別定義兩個xml檔案,一個是預設顯示的住介面,一個是快顯視窗的介面
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:orientation="vertical"android:layout_width="wrap_content"android:layout_height="wrap_content"><TextViewandroid:id="@+id/popinfo"android:text="請選擇您的目前狀態:"android:layout_width="wrap_content"android:textSize="20px"android:layout_height="wrap_content"/><RadioGroupandroid:id="@+id/changestatus"android:layout_width="wrap_content"android:layout_height="wrap_content"android:orientation="vertical"android:checkedButton="@+id/online"><RadioButtonandroid:id="@+id/online"android:text="線上"/><RadioButtonandroid:id="@+id/offline"android:text="離線"/><RadioButtonandroid:id="@+id/stealth"android:text="隱藏"/></RadioGroup><Button android:id="@+id/cancel" android:layout_height="wrap_content"android:layout_width="wrap_content" android:text="取消" /></LinearLayout>
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:orientation="vertical" android:layout_width="fill_parent"android:layout_height="fill_parent"><TextView android:id="@+id/statusinfo"android:layout_height="wrap_content"android:layout_width="fill_parent" android:text="目前使用者狀態:線上" /><Button android:id="@+id/popbut" android:layout_height="wrap_content"android:layout_width="fill_parent"android:text="狀態" /> </LinearLayout>
JAVA檔案
package com.example.popupwindow;import android.app.Activity;import android.os.Bundle;import android.view.Gravity;import android.view.LayoutInflater;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.PopupWindow;import android.widget.RadioButton;import android.widget.RadioGroup;import android.widget.RadioGroup.OnCheckedChangeListener;import android.widget.TextView;public class MainActivity extends Activity {private Button popbut = null; // 按鈕組件private RadioGroup changestatus = null; // 單選鈕組件private TextView statusinfo = null; // 文本顯示組件private Button cancel = null; // 按鈕組件private PopupWindow popWin = null; // 快顯視窗private View popView = null; // 儲存快顯視窗布局@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);super.setContentView(R.layout.main); // 設定布局管理器this.popbut = (Button) super.findViewById(R.id.popbut); // 取得組件this.statusinfo = (TextView) super.findViewById(R.id.statusinfo); // 取得組件this.popbut.setOnClickListener(new OnClickListenerImpl()); // 設定單擊事件}private class OnClickListenerImpl implements OnClickListener {// 設定監聽@Overridepublic void onClick(View view) {LayoutInflater inflater = LayoutInflater.from(MainActivity.this);// 取得LayoutInflater對象MainActivity.this.popView = inflater.inflate(R.layout.popwindow, null);// 讀取布局管理器MainActivity.this.popWin = new PopupWindow(popView, 300, 220,true);// 執行個體化PopupWindowMainActivity.this.changestatus = (RadioGroup) popView.findViewById(R.id.changestatus); // 取得組件MainActivity.this.cancel = (Button) popView.findViewById(R.id.cancel); // 取得組件MainActivity.this.changestatus.setOnCheckedChangeListener(new OnCheckedChangeListenerImpl());// 設定監聽MainActivity.this.cancel.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {MainActivity.this.popWin.dismiss(); // 關閉快顯視窗}});MainActivity.this.popWin.showAtLocation(MainActivity.this.popbut, Gravity.CENTER, 0, 0);// 顯示快顯視窗}}private class OnCheckedChangeListenerImpl implementsOnCheckedChangeListener {// 選項選中時觸發@Overridepublic void onCheckedChanged(RadioGroup group, int checkedId) {RadioButton but = (RadioButton) MainActivity.this.popView.findViewById(group.getCheckedRadioButtonId());// 取得選中組件MainActivity.this.statusinfo.setText("目前使用者狀態:"+ but.getText().toString());// 設定文本MainActivity.this.popWin.dismiss(); // 關閉快顯視窗}}}
android基本控制項介紹到這裡基本就結束了,後續還會有其他的一些組件,會在用到的時候給大家進行具體的講解
從零開始學android<popupwindow彈出式視窗.三十四.>