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