进程管理UI
技术点: 1、线性布局下, LinearLayout,如果上面的组件采用了 android:layout_width="match_parent"
android:layout_height="match_parent"下面的组件也是一样,那么上面的会将下面的组件给覆盖掉, 所以要指定权重,值越大,权重越小,一般下面的要大点 android:layout_weight="1" 2、防止自己被选择,以及不让自己进程响应点击事件 解决:只要让对应item位置,进行判断,如果和当前手机卫士的包名一致,那么复选框不可选中,以及不可响应点击事件 a)屏蔽复选框 // 如果是自己,那么讲checkbox给隐藏掉
if (taskInfo.getAppPackageName().equals(getPackageName())) {// 如果item应用的包名和当前应用包名一致,为自己
viewHolder.cb_task_status.setVisibility(View.INVISIBLE);// 不可见
}b)屏蔽被选择 /**
* 5、全选
*/
public void selectAll() {
for (TaskInfo taskInfo : userTaskInfos) {
if (taskInfo.getAppPackageName().equals(getPackageName())) {// 自己应用给跳过
continue;
}
taskInfo.setChecked(true);
}
for (TaskInfo taskInfo : sysTaskInfos) {
taskInfo.setChecked(true);
}
if (adataer != null) {
adataer.notifyDataSetChanged();
}
}c)屏蔽点击事件 if (taskInfo.getAppPackageName().equals(getPackageName())) {// 自己应用,不可响应点击
view.setClickable(false);
return;
}3、ListView中的checkbox的问题,上面的选中了,如果滚动到下面,下面的又被选中了, 这是由于复用了之前的convertView,所以下面复用的也被选中了。 解决: if (taskInfo.isChecked()) {
viewHolder.cb_task_status.setChecked(true);
} else {
viewHolder.cb_task_status.setChecked(false);
}
|
1、布局文件 <?xml version="1.0" encoding="utf-8"?>
<!-- 32、任务管理器Activity的布局文件 -->
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<!-- 1、任务管理器标题 -->
<TextView
style="@style/wizard_textview_title"
android:gravity="center"
android:text="@string/task_manager" />
<!-- 2、进程个数,可用/总内存 -->
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content" >
<TextView
android:id="@+id/tv_running_process_count"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
android:text="@string/running_process_count" />
<TextView
android:id="@+id/tv_available_memory"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:gravity="center"
android:text="@string/avail_and_total_memory" />
</RelativeLayout>
<!-- TODO ListView显示等待加载数据的界面布局 -->
<!-- 3、任务管理器ListView -->
<FrameLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="300" >
<ListView
android:id="@+id/lv_task_list"
android:layout_width="match_parent"
android:layout_height="match_parent" >
</ListView>
<LinearLayout
android:id="@+id/ll_task_data_fill"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
android:orientation="vertical"
android:visibility="invisible" >
<ProgressBar
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="15dip"
android:gravity="center"
android:text="@string/loadind_data_waiting" />
</LinearLayout>
</FrameLayout>
<!-- 3、按钮 -->
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1" >
<Button
android:id="@+id/bt_task_selectAll"
android:layout_width="0dip"
android:layout_height="wrap_content"
android:layout_weight="1"
android:background="@drawable/btn_green_selector"
android:text="@string/task_selectall"
tools:ignore="NestedWeights" />
<Button
android:id="@+id/bt_task_clearAll"
android:layout_width="0dip"
android:layout_height="wrap_content"
android:layout_weight="1"
android:background="@drawable/btn_green_selector"
android:text="@string/task_clearall" />
<Button
android:id="@+id/bt_task_selectOpposite"
android:layout_width="0dip"
android:layout_height="wrap_content"
android:layout_weight="1"
android:background="@drawable/btn_green_selector"
android:text="@string/task_selectopposite" />
<Button
android:id="@+id/bt_task_clearMaster"
android:layout_width="0dip"
android:layout_height="wrap_content"
android:layout_weight="2"
android:background="@drawable/btn_green_selector"
android:text="@string/task_clearmaster" />
<Button
android:id="@+id/bt_task_setting"
android:layout_width="0dip"
android:layout_height="wrap_content"
android:layout_weight="1"
android:background="@drawable/btn_green_selector"
android:text="@string/task_setting" />
</LinearLayout>
</LinearLayout>
|
2、核心代码:
|
效果: |