6.1 程序管理器的界面展现
来源:互联网 发布:不要网络的游戏有哪些 编辑:程序博客网 时间:2024/06/06 15:01
public class AppManagerActivity extends Activity {
protected static final String TAG = "AppManagerActivity";
private TextView tv_avail_rom;
private TextView tv_avail_sd;
private ListView lv_app_manage;
private LinearLayout loading;
private List<AppInfoBean> appInfoList;
private MyAdapter adapter;
private Handler handler= new Handler(){
public void handleMessage(android.os.Message msg) {
Log. i(TAG, "进入handler..." );
loading.setVisibility(View. GONE); //移除loading
lv_app_manage.setAdapter( new MyAdapter());
Log. i(TAG, "填充" );
};
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout. activity_app_manage);
//找到关心的控件
tv_avail_rom=(TextView) findViewById(R.id. tv_avail_rom);
tv_avail_sd=(TextView) findViewById(R.id. tv_avail_sd);
lv_app_manage=(ListView) findViewById(R.id. lv_app_manage);
loading=(LinearLayout) findViewById(R.id. loading);
//给TextView设置值
tv_avail_rom.setText( "内存可用空间:" +getAvailableSpace(Environment.getDataDirectory ().getAbsolutePath()));
tv_avail_sd.setText("SD卡可用空间:"+getAvailableSpace(Environment. getExternalStorageDirectory().getAbsolutePath()));
// appInfoList=new ArrayList<AppInfoBean>();
//填充数据到集合
fillDateToLIst();
}
/**
* 填充数据到集合的方法
*/
public void fillDateToLIst(){
loading.setVisibility(View. VISIBLE); //loading可见
new Thread(){
public void run() {
appInfoList = AppManager.getAppInfo(AppManagerActivity. this);
Log. i(TAG, "集合的大小:" +appInfoList .size());
handler.sendEmptyMessage(0);
};
}.start();
}
/**
* 创建适配器
*/
public class MyAdapter extends BaseAdapter{
@Override
public int getCount() {
return appInfoList.size();
}
@Override
public View getView( int position, View convertView, ViewGroup parent) {
View view= null;
ViewHolder holder;
if(convertView!= null&& convertView instanceof RelativeLayout){ //复用历史view
view=convertView;
holder=(ViewHolder) view.getTag(); //复用孩子的id
} else{ //创建新的view
Log. i(TAG, "创建信息的item" );
view=View. inflate(getApplicationContext(), R.layout.list_app_item, null );
holder= new ViewHolder(); //初始化静态类中控件,找到关心的控件
holder. iv_appicon=(ImageView) view.findViewById(R.id.iv_appicon );
holder. tv_appname=(TextView) view.findViewById(R.id.tv_appname );
holder. tv_installlocation=(TextView)view.findViewById(R.id.tv_installlocation );
view.setTag(holder); //将holder追加到view上
}
AppInfoBean appInfoBean = appInfoList.get(position);
holder. iv_appicon.setImageDrawable(appInfoBean.getIcon());
holder. tv_appname.setText(appInfoBean.getAppName());
if( appInfoBean.isRoomApp()){
holder. tv_installlocation.setText( "存储位置:内存" );
} else{
holder. tv_installlocation.setText( "存储位置:外部存储" );
}
return view;
}
@Override
public Object getItem( int position) {
return null;
}
@Override
public long getItemId( int position) {
return 0;
}
}
/**
* 创建静态来初始化条目中的控件
*/
static class ViewHolder{
ImageView iv_appicon;
TextView tv_appname;
TextView tv_installlocation;
}
/**
* 获取某个目录的大小
* @param path
* @return
*/
public String getAvailableSpace(String path){
StatFs statf = new StatFs(path);
long size = statf. getAvailableBlocks()*statf. getBlockSize();
return Formatter. formatFileSize(this, size);
}
}
- 6.1 程序管理器的界面展现
- 良好的异常展现界面<500.jsp>
- 把计算过程展现出来的程序
- 数据的存储和界面的展现一
- 数据的存储和界面的展现二
- 浅析 android 应用界面的展现流程(一)周期函数
- 一个可以在界面顶部展现的自定义 View
- 模拟任务管理器的程序
- 数据存储和界面展现
- 数据存储和界面展现
- 数据存储和界面展现
- 基于HTML5的WebGL实现json和echarts图表展现在同一个界面
- fedora 自动启动的程序管理器
- 58程序管理器的简单UI
- 79进程管理器设置界面:显示系统进程的做法
- Android应用的界面编程(二)--Layout布局管理器
- GUI界面、AWT组件提供的6种布局管理器
- 数据存储和界面展现总结
- A browser for WinCE/Windows base WebKit. (zz)
- 拦截导弹
- 5.7 软件管理:可用空间的显示
- 5.8 获取应用程序信息
- 深深地检讨
- 6.1 程序管理器的界面展现
- 使用asio搭建服务器
- Linux系统的分区概念
- 2013hpuacm第八周周赛题
- 6.2 复杂的listView展现
- 移动短信网关接入必须的几个参数
- vim插件配置模板
- 树状数组(好)-poj1990
- OCP-1Z0-053-V12.02-629题