Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/189.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_Android Asynctask - Fatal编程技术网

在Java中以参数形式传递布尔值

在Java中以参数形式传递布尔值,java,android,android-asynctask,Java,Android,Android Asynctask,我的主android应用程序的类文件中有两个类。这是主要的活动和任务。我在调用AsyncTask时传递用户名和密码字符串,但我希望传递一个来自主活动的布尔值和字符串。我将在下面的代码中解释它(请检查代码中的注释): //我有一个主类 公共类MyActivity扩展了活动{ 布尔值=假; @凌驾 创建时受保护的void(Bundle savedInstanceState){ super.onCreate(savedInstanceState); //东西 登录=(按钮)findViewById(R

我的主android应用程序的类文件中有两个类。这是主要的活动和任务。我在调用AsyncTask时传递用户名和密码字符串,但我希望传递一个来自主活动的布尔值和字符串。我将在下面的代码中解释它(请检查代码中的注释):

//我有一个主类
公共类MyActivity扩展了活动{
布尔值=假;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
//东西
登录=(按钮)findViewById(R.id.button1);
login.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
开关(v.getId()){
案例R.id.button1:
//做点什么
单击=真;
AsyncTaskRunner=新建AsyncTaskRunner();
runner.execute(getUsername(),getPassword());//我想在这里传递boolean clicked,这将在asynctask上检查!
打破
}
}
});
}
私有类AsyncTaskRunner扩展了AsyncTask{
如果单击==真{
//做点什么
}否则{
//做点什么
}
}
}
对于经常使用Java的人来说,这可能不是一个很复杂的问题,我不这么认为,这就是为什么我要问


提前谢谢

AsyncTaskRunner
类创建构造函数,并将参数传递给构造函数,然后在
AsyncTaskRunner
类方法中使用它们。

可以将其作为数组中的字符串之一传递:

runner.execute(String.valueOf(clicked), getUsername(), getPassword());
异步任务将获取它:

private class AsyncTaskRunner extends AsyncTask<String, String, String> {
    @Override
    protected String doInBackground(String... strings) {
        boolean clicked = Boolean.parseBoolean(strings[0]);
        String user = strings[1];
        String pass = strings[2];
        ...
    }
}
私有类AsyncTaskRunner扩展了AsyncTask{
@凌驾
受保护的字符串背景(字符串…字符串){
boolean clicked=boolean.parseBoolean(字符串[0]);
字符串用户=字符串[1];
字符串传递=字符串[2];
...
}
}
  • AsyncTaskRunner是MyActivity类的非静态内部类,因此您已经可以访问任何AsyncTaskRunner实例方法中活动的“单击”字段。为了能够在AsyncTaskRunner方法中看到“clicked”字段,无需执行任何操作

  • 如果您声明AsyncTaskRunner是静态类。代码如下:

    private static class AsyncTaskRunner extends AsyncTask<String, String, String> {
    
        private final boolean clicked;
    
        //private final Object anotherParams;
    
        public AsyncTaskRunner(boolean clicked ) {
            this.clicked = clicked;
        }
    
        public boolean isClicked() {
            return clicked;
        }
    
        @Override
        protected String doInBackground(String... strings) {
    
        }
    }
    

  • 这正是我想要的。但是如何传递布尔值呢?你能检查一下代码并给我一些代码示例吗?谢谢
    private static class AsyncTaskRunner extends AsyncTask<String, String, String> {
    
        private final boolean clicked;
    
        //private final Object anotherParams;
    
        public AsyncTaskRunner(boolean clicked ) {
            this.clicked = clicked;
        }
    
        public boolean isClicked() {
            return clicked;
        }
    
        @Override
        protected String doInBackground(String... strings) {
    
        }
    }
    
    AsyncTaskRunner runner = new AsyncTaskRunner(MyActivity.this.clicked);