Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/318.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 上/下滚动时缺少签入复选框_Java_Android - Fatal编程技术网

Java 上/下滚动时缺少签入复选框

Java 上/下滚动时缺少签入复选框,java,android,Java,Android,大家好,我的申请有问题。选中我的复选框,一旦我选中复选框并向下/向上滚动它,复选框就消失了,我不知道这是怎么发生的。有人能帮我吗?谢谢你的帮助:) 这是我的密码: public class TaskKiller extends Activity { private static final String TAG = "TaskKillerActivity"; TaskListAdapter adapter; ListView lv; private List&l

大家好,我的申请有问题。选中我的复选框,一旦我选中复选框并向下/向上滚动它,复选框就消失了,我不知道这是怎么发生的。有人能帮我吗?谢谢你的帮助:) 这是我的密码:

public class TaskKiller extends Activity {
    private static final String TAG = "TaskKillerActivity";
    TaskListAdapter adapter;
    ListView lv;

    private List<TaskObject> getTasksToKill() {
        List<TaskObject> tol = new ArrayList<TaskObject>();

        for (int i = 0; i < adapter.getCount(); i++) {
            TaskObject to = adapter.getItem(i);
            if (to.isToKill()) {
                tol.add(to);
            }
        }

        return tol;
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();

    }

    public void loadRunningProcesses() {

        ActivityManager activityManager = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);

        List<RunningAppProcessInfo> appinfolist = activityManager
                .getRunningAppProcesses();

        Log.d(TAG, "AppInfoList Size: " + appinfolist.size());

        for (ActivityManager.RunningAppProcessInfo runningAppProcessInfo : appinfolist) {
            TaskObject runningtask = new TaskObject();
            runningtask.setPid(runningAppProcessInfo.pid);
            runningtask.setProcessName(runningAppProcessInfo.processName);
            adapter.addTask(runningtask);
        }
    }

    class TaskObject {
        int pid;
        String processName;
        private boolean toKill;

        public int getPid() {
            return pid;
        }

        public void setPid(int pid) {
            this.pid = pid;
        }

        public String getProcessName() {
            return processName;
        }

        public void setProcessName(String processName) {
            this.processName = processName;
        }

        public boolean isToKill() {
            return toKill;
        }

        public void setToKill(boolean toKill) {
            this.toKill = toKill;
        }

    }

    class TaskListAdapter extends BaseAdapter {

        private static final String TAG = "TaskListAdapter";

        ArrayList<TaskObject> list;
        Context context;

        public TaskListAdapter(Context context) {
            Log.d(TAG, "created new task list adapter");
            this.context = context;
            if (list == null) {
                list = new ArrayList<TaskKiller.TaskObject>();
            }
        }

        public void addTask(TaskObject taskObject) {
            list.add(taskObject);
        }

        public void clearTasks() {
            list.clear();
            Log.d(TAG, "list size:" + list.size());
            this.notifyDataSetChanged();
        }

        public int getCount() {
            return list.size();
        }

        public TaskObject getItem(int position) {
            return list.get(position);
        }

        public long getItemId(int position) {
            return position;
        }

        public View getView(final int position, View convertView,
                ViewGroup parent) {
            RelativeLayout rl = new RelativeLayout(context);
            TextView textPid = new TextView(context);
            textPid.setId(222222);
            textPid.setText(Integer.toString(getItem(position).getPid()));

            TextView textName = new TextView(context);
            textName.setId(333333);
            textName.setText(getItem(position).getProcessName());

            CheckBox chckKill = new CheckBox(context);
            chckKill.setOnClickListener(new View.OnClickListener() {

                public void onClick(View v) {
                    // is chkIos checked?
                    if (((CheckBox) v).isChecked()) {
                        getItem(position).setToKill(true);
                    }

                }
            });
}
公共类TaskKiller扩展活动{
私有静态最终字符串标记=“TaskKillerActivity”;
任务列表适配器;
ListView lv;
私有列表getTasksToKill(){
List tol=新的ArrayList();
对于(inti=0;i
我认为问题在于您没有在复选框中使用项目的toKill状态。当您滚动时,它将使用getView重新绘制,并重置为空


在构造函数之后。

我认为问题在于您没有在复选框中使用项的toKill状态。当您滚动时,它将使用getView重新绘制,并重置为空


构造函数之后。

有一个错误,无法从布尔值转换为TaskKiller.TaskObject。我将把这段代码放在哪里?因为我将它放在这段代码之后?CheckBox chckKill=new CheckBox(上下文);是吗right@RinggoLacunaDeJesus可能错过了一次机会(.再试一次。是的,在复选框后添加。非常感谢您的帮助,它可以正常工作。:)我可以再问一次问题吗?我的代码中显示的是一个包名,而不是包名。因为在我的代码中,它是一个出现在ex:com.google.android中的包名。我想要的是像google或tomcatsir一样的名称。我又遇到了一个问题,先生。当我取消选中复选框并上下滚动时,复选框又出现了。谢谢你的帮助我已经发布了这个问题,但他们关闭了它,因为我不知道它被限制在这里发布,不是相同的问题,而是相同的解释和细节。:))没有人回答我的问题。我不知道为什么。不管怎样,电池充电动画怎么样?我的意思是当电池充电时。有一个错误无法从布尔值转换为TaskKiller.TaskObject。我将把这个代码放在哪里?因为我把它放在这个代码之后?复选框chckKill=new复选框(上下文)我是吗right@RinggoLacunaDeJesus可能缺少一个(.重试。是的,请在复选框后添加该复选框。非常感谢您的帮助,它可以正常工作。:)我可以再问一次问题吗?我的代码中显示的是一个包名,而不是包名。因为在我的代码中,它是一个出现在ex:com.google.android中的包名。我想要的是像google或tomcatsir一样的名称。我又遇到了一个问题,先生。当我取消选中复选框并上下滚动时,复选框又出现了。谢谢你的帮助又是lp。我已经发布了这个问题,但他们已经结束了
chckKill.setChecked( ((TaskObject) getItem(position) ).isToKill());