從零開始學android<popupwindow彈出式視窗.三十四.>

來源:互聯網
上載者:User

標籤:風飛雪未揚   從零開始學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彈出式視窗.三十四.>

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.