Android开发中PopupWindow用法实例分析_Android

本文实例分析了Android开发中PopupWindow用法。分享给大家供大家参考,具体如下:

private TextView tv_appmanager_title;
private ListView lv_app_manager;
private LinearLayout ll_appmanager_loading;
private AppManagerProvider provider;
private List<AppManagerInfo> infos ;
private AppManagerAdapter adapter;
private PopupWindow localPopupWindow;
private Handler handler = new Handler(){
  public void handleMessage(android.os.Message msg) {
    switch (msg.what) {
    case Constants.MSG_APP_MANAGER:
      ll_appmanager_loading.setVisibility(View.INVISIBLE);
      adapter = new AppManagerAdapter(infos, AppManagerActivity.this);
      lv_app_manager.setAdapter(adapter);
      break;
    }
  };
};
@Override
protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.appmanager);
  lv_app_manager = (ListView) this.findViewById(R.id.lv_app_manager);
  ll_appmanager_loading = (LinearLayout) this.findViewById(R.id.ll_appmanager_loading);
  ll_appmanager_loading.setVisibility(View.VISIBLE);
  new Thread(){
    public void run() {
      provider = new AppManagerProvider(AppManagerActivity.this);
      infos = provider.getAppManagerInfo();
      Message msg = new Message();
      msg.what = Constants.MSG_APP_MANAGER;
      handler.sendMessage(msg);
    };
  }.start();
  lv_app_manager.setOnItemClickListener(new OnItemClickListener() {
    @Override
    public void onItemClick(AdapterView<?> parent, View view,
        int position, long id) {
      if(null != localPopupWindow){
        localPopupWindow.dismiss();
        localPopupWindow = null;
      }
      int [] location = new int[2];
      view.getLocationInWindow(location);
      int x = location[0] + 60;
      int y = location[1];
      TextView tv = new TextView(AppManagerActivity.this);
      AppManagerInfo info = (AppManagerInfo) lv_app_manager.getItemAtPosition(position);
      tv.setText(info.getPackName());
      tv.setTextSize(20);
      tv.setTextColor(Color.RED);
      localPopupWindow = new PopupWindow(tv, LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
      Drawable background = new ColorDrawable(Color.GRAY);
      localPopupWindow.setBackgroundDrawable(background);
      localPopupWindow.showAtLocation(tv, 51, x, y);
    }
  });
  lv_app_manager.setOnScrollListener(new OnScrollListener() {
    @Override
    public void onScrollStateChanged(AbsListView view, int scrollState) {
      if(null != localPopupWindow){
        localPopupWindow.dismiss();
        localPopupWindow = null;
      }
    }
    @Override
    public void onScroll(AbsListView view, int firstVisibleItem,
        int visibleItemCount, int totalItemCount) {
      if(null != localPopupWindow){
        localPopupWindow.dismiss();
        localPopupWindow = null;
      }
    }
  });
}

更多关于Android相关内容感兴趣的读者可查看本站专题:《Android开发入门与进阶教程》、《Android通信方式总结》、《Android基本组件用法总结》、《Android视图View技巧总结》、《Android布局layout技巧总结》及《Android控件用法总结》

希望本文所述对大家Android程序设计有所帮助。

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索android
popupwindow
popupwindow用法、android popupwindow、android中popupwindow、android的popupwindow、androidppopupwindow,以便于您获取更多的相关知识。

时间: 2024-10-16 09:14:16

Android开发中PopupWindow用法实例分析_Android的相关文章

Android开发中PopupWindow用法实例分析

本文实例分析了Android开发中PopupWindow用法.分享给大家供大家参考,具体如下: private TextView tv_appmanager_title; private ListView lv_app_manager; private LinearLayout ll_appmanager_loading; private AppManagerProvider provider; private List<AppManagerInfo> infos ; private AppM

Android开发之BroadcastReceiver用法实例分析_Android

本文实例讲述了Android开发中BroadcastReceiver用法.分享给大家供大家参考.具体分析如下: 在Android系统中,广播(Broadcast)是在组件之间传播数据(Intent)的一种机制. Braodcast Receiver顾名思义就是广播接收器,它和事件处理机制类似,但是事件处理机制是程序组件级别的(比如:按钮的单击事件),而广播事件处理机制是系统级别的.我们可以用Intent来启动一个组件,也可以用sendBroadcast()方法发起一个系统级别的事件广播来传递消息

Android开发之Location用法实例分析_Android

本文实例讲述了Android开发中Location用法.分享给大家供大家参考,具体如下: Location 在Android 开发中还是经常用到的,如通过经纬度获取天气,根据Location 获取所在地区详细Address (比如Google Map 开发)等.而在Android 中通过LocationManager来获取Location .通常获取Location 有GPS 获取,WIFI 获取. 这边介绍一个简单的小Demo ,来教大家如何获取Location ,从而获取经纬度. 第一步:创

Android开发中LayoutInflater用法详解_Android

本文实例讲述了Android开发中LayoutInflater用法.分享给大家供大家参考,具体如下: 在实际开发中LayoutInflater这个类还是非常有用的,它的作用类似于findViewById().不同点是LayoutInflater是用来找res/layout/下的xml布局文件,并且实例化:而findViewById()是找xml布局文件下的具体widget控件(如Button.TextView等). 具体作用: 1.对于一个没有被载入或者想要动态载入的界面,都需要使用Layout

Android中AlertDialog用法实例分析_Android

本文实例分析了Android中AlertDialog用法,分享给大家供大家参考,具体如下: Android中AlertDialog为一些程序提供了对话框,有些功能能够进一步满足程序的需要.下面举例介绍. 程序如下: import android.app.Activity; import android.app.AlertDialog; import android.content.DialogInterface; import android.os.Bundle; import android.

Android中ImageView用法实例分析_Android

本文实例分析了Android中ImageView用法.分享给大家供大家参考,具体如下: 猜牌游戏大家可能以前都玩过,这里我们用这个小游戏来说明ImageView的用法. 首先,在res/drawable中引入三张牌:分别是梅花7,梅花8,梅花9 然后在res/layout/main.xml中配置一个TextView,三个ImageView以及一个Button <?xml version="1.0" encoding="utf-8"?> <Linea

Android中ListView用法实例分析_Android

本文实例分析了Android中ListView用法.分享给大家供大家参考,具体如下: 通过在Layout中添加ListView Widget可以达到在页面布局具有列表效果的交互页面.在这里通过举例来说明怎样在Layout中添加ListView以及怎样应用. 配合设计了两个事件Listener:  OnItemSelectedListener事件为鼠标的滚轮转动时所选择的值:OnItemClickListener事件则为当鼠标单击时,所触发的事件.由此可以区别出list中的"选择"与&q

Android中ListActivity用法实例分析_Android

本文实例分析了Android中ListActivity用法.分享给大家供大家参考,具体如下: 程序如下: import android.app.ListActivity; import android.os.Bundle; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.widget.ArrayAdapter; import android.widge

Android中Bitmap用法实例分析_Android

本文实例讲述了Android中Bitmap用法.分享给大家供大家参考,具体如下: 一般在android程序中把图片文件放在res/drawable目录下就可以通过R.drawable.id来使用,但在存储卡中的图片怎样引用呢?下面通过实现这个功能来介绍Bitmap的用法. 程序如下: import java.io.File; import android.app.Activity; import android.graphics.Bitmap; import android.graphics.B