zoukankan      html  css  js  c++  java
  • 控件:PopupWindow 弹出窗口(基本操作)

    popwindow.xml

    View Code
    <?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">
    <TextView
    android:id="@+id/popinfo"
    android:text
    ="请选择您的当前状态:"
    android:layout_width
    ="wrap_content"
    android:textSize
    ="20px"
    android:layout_height
    ="wrap_content"/>
    <RadioGroup
    android:id="@+id/changestatus"
    android:layout_width
    ="wrap_content"
    android:layout_height
    ="wrap_content"
    android:orientation
    ="vertical"
    android:checkedButton
    ="@+id/online">
    <RadioButton
    android:id="@+id/online"
    android:text
    ="在线"/>
    <RadioButton
    android:id="@+id/offline"
    android:text
    ="离线"/>
    <RadioButton
    android:id="@+id/stealth"
    android:text
    ="隐身"/>
    </RadioGroup>
    <Button
    android:id="@+id/cancel"
    android:layout_height
    ="wrap_content"
    android:layout_width
    ="wrap_content"
    android:text
    ="取消" />
    </LinearLayout>

    main.xml

    View Code
    <?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>

    MyPopupWindowDemo.java

    View Code
    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 MyPopupWindowDemo 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; // 保存弹出窗口布局

    @Override
    public 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 {
    @Override
    public void onClick(View view) {
    // 取得LayoutInflater对象
    LayoutInflater inflater = LayoutInflater.from(MyPopupWindowDemo.this);
    // 读取布局管理器
    MyPopupWindowDemo.this.popView = inflater.inflate(R.layout.popwindow, null);
    // 实例化PopupWindow
    MyPopupWindowDemo.this.popWin = new PopupWindow(popView, 300, 220,true);
    // 取得组件
    MyPopupWindowDemo.this.changestatus = (RadioGroup) popView.findViewById(R.id.changestatus);
    // 取得组件
    MyPopupWindowDemo.this.cancel = (Button) popView.findViewById(R.id.cancel);
    // 设置监听
    MyPopupWindowDemo.this.changestatus.setOnCheckedChangeListener(
    new OnCheckedChangeListenerImpl());
    MyPopupWindowDemo.this.cancel
    .setOnClickListener(new OnClickListener() {
    @Override
    public void onClick(View v) {
    // 关闭弹出窗口
    MyPopupWindowDemo.this.popWin.dismiss();
    }
    });
    // 显示弹出窗口
    MyPopupWindowDemo.this.popWin.showAtLocation(
    MyPopupWindowDemo.this.popbut,
    Gravity.CENTER, 0, 0);
    }
    }

    // 选项选中时触发
    private class OnCheckedChangeListenerImpl implementsOnCheckedChangeListener {

    @Override
    public void onCheckedChanged(RadioGroup group, int checkedId) {
    // 取得选中组件
    RadioButton but = (RadioButton) MyPopupWindowDemo.this.popView
    .findViewById(group.getCheckedRadioButtonId());
    // 设置文本
    MyPopupWindowDemo.this.statusinfo.setText("当前用户状态:"
    + but.getText().toString());
    // 关闭弹出窗口
    MyPopupWindowDemo.this.popWin.dismiss();
    }

    }
    }

    AndroidManifest.xml

    View Code
    <?xml version="1.0" encoding="utf-8"?>
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package
    ="org.lxh.demo"
    android:versionCode
    ="1"
    android:versionName
    ="1.0">
    <uses-sdk android:minSdkVersion="3" />

    <application android:icon="@drawable/icon" android:label="@string/app_name">
    <activity android:name=".MyPopupWindowDemo"
    android:label
    ="@string/app_name">
    <intent-filter>
    <action android:name="android.intent.action.MAIN" />
    <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
    </activity>

    </application>
    </manifest>
  • 相关阅读:
    二、JVM — 垃圾回收
    一、JVM — Java内存区域
    四、JVM — 类文件结构
    java 如何重写equal 和hashcode方法(最佳实践)
    Java关于继承中的内存分配
    Linux — 基础知识
    Zookeeper — 应用场景
    分布式服务接口请求的顺序性如何保证?
    如何设计一个高并发系统?
    索引策略
  • 原文地址:https://www.cnblogs.com/androidsj/p/2379674.html
Copyright © 2011-2022 走看看