Android开发中PopupWindow用法实例分析
本文实例分析了Android开发中PopupWindow用法。分享给大家供大家参考,具体如下:
privateTextViewtv_appmanager_title;
privateListViewlv_app_manager;
privateLinearLayoutll_appmanager_loading;
privateAppManagerProviderprovider;
privateList<AppManagerInfo>infos;
privateAppManagerAdapteradapter;
privatePopupWindowlocalPopupWindow;
privateHandlerhandler=newHandler(){
publicvoidhandleMessage(android.os.Messagemsg){
switch(msg.what){
caseConstants.MSG_APP_MANAGER:
ll_appmanager_loading.setVisibility(View.INVISIBLE);
adapter=newAppManagerAdapter(infos,AppManagerActivity.this);
lv_app_manager.setAdapter(adapter);
break;
}
};
};
@Override
protectedvoidonCreate(BundlesavedInstanceState){
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);
newThread(){
publicvoidrun(){
provider=newAppManagerProvider(AppManagerActivity.this);
infos=provider.getAppManagerInfo();
Messagemsg=newMessage();
msg.what=Constants.MSG_APP_MANAGER;
handler.sendMessage(msg);
};
}.start();
lv_app_manager.setOnItemClickListener(newOnItemClickListener(){
@Override
publicvoidonItemClick(AdapterView<?>parent,Viewview,
intposition,longid){
if(null!=localPopupWindow){
localPopupWindow.dismiss();
localPopupWindow=null;
}
int[]location=newint[2];
view.getLocationInWindow(location);
intx=location[0]+60;
inty=location[1];
TextViewtv=newTextView(AppManagerActivity.this);
AppManagerInfoinfo=(AppManagerInfo)lv_app_manager.getItemAtPosition(position);
tv.setText(info.getPackName());
tv.setTextSize(20);
tv.setTextColor(Color.RED);
localPopupWindow=newPopupWindow(tv,LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT);
Drawablebackground=newColorDrawable(Color.GRAY);
localPopupWindow.setBackgroundDrawable(background);
localPopupWindow.showAtLocation(tv,51,x,y);
}
});
lv_app_manager.setOnScrollListener(newOnScrollListener(){
@Override
publicvoidonScrollStateChanged(AbsListViewview,intscrollState){
if(null!=localPopupWindow){
localPopupWindow.dismiss();
localPopupWindow=null;
}
}
@Override
publicvoidonScroll(AbsListViewview,intfirstVisibleItem,
intvisibleItemCount,inttotalItemCount){
if(null!=localPopupWindow){
localPopupWindow.dismiss();
localPopupWindow=null;
}
}
});
}
更多关于Android相关内容感兴趣的读者可查看本站专题:《Android开发入门与进阶教程》、《Android通信方式总结》、《Android基本组件用法总结》、《Android视图View技巧总结》、《Android布局layout技巧总结》及《Android控件用法总结》
希望本文所述对大家Android程序设计有所帮助。