gpt4 book ai didi

java - 在 Java 中将 boolean 值作为参数传递

转载 作者:行者123 更新时间:2023-12-01 12:15:38 26 4
gpt4 key购买 nike

我的主 Android 应用程序的类文件中有两个类。它是主要的 Activity 和 AsyncTask。我在调用 AsyncTask 时传递用户名和密码字符串,但我想将主 Activity 中的 boolean 值与字符串一起传递。我将在下面的代码中解释它(请检查代码中的注释):

//I have an main class
public class MyActivity extends Activity {

boolean clicked = false;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//stuff

login = (Button) findViewById(R.id.button1);
login.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.button1:
//DO something
clicked = true;
AsyncTaskRunner runner = new AsyncTaskRunner();
runner.execute(getUsername(), getPassword()); //Here I want to pass boolean clicked, which will be checked on asynctask!
break;
}
}
});
}

private class AsyncTaskRunner extends AsyncTask<String, String, String> {
if clicked == true{
//do something
}else{
//do something
}
}
}

对于经常使用 Java 的人来说,这可能不是那么复杂的问题,我不这么认为,所以这就是我问的原因......

提前致谢!

最佳答案

  1. AsyncTaskRunner 是 MyActivity 类的非静态内部类,因此您已经可以在任何 AsyncTaskRunner 实例方法中访问 Activity 的“clicked”字段。您无需执行任何操作即可在 AsyncTaskRunner 方法中看到“clicked”字段。

  2. 如果您声明 AsyncTaskRunner 是 Static 类。这是代码:

    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) {

    }
    }
  3. 使用AsyncTaskRunner

    AsyncTaskRunner runner = new AsyncTaskRunner(MyActivity.this.clicked);

关于java - 在 Java 中将 boolean 值作为参数传递,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27026470/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com