我认为这是一个基本的 Java 问题:
这是一个 Android 项目。我有这个设置:
public class MyFragmentActivity extends FragmentActivity implements
ActionBar.TabListener {
// lots of code edited out
public static class RateFragment extends Fragment {
// lots of code edited out
class InsertTask extends AsyncTask<String, String, Void> {
protected void onPostExecute(Void v) { {
// I need to access ReviewTask here
new ReviewTask().execute();
}
}
}
public static class ReviewFragment extendsListFragment {
class ReviewTask extends AsyncTask<String, String, Void> {
// code
}
}
}
我真的是在问一个基本的 Java 问题。我知道这不是 Android 中最好的方法。
如果您一定知道我在做什么:(如果这令人困惑,则此信息的优先级较低,仅用于某些上下文)当在 RateFragment 中按下按钮并将数据插入 MySQL 数据库时,我会调用 InsertTask。这就是我想在上面的代码中做的:在 InsertTask 中,最后,在另一个内部类中调用 ReviewTask。这将更新 ListView (在另一个选项卡中)。
可以从 InsertTask 到达 ReviewTask 吗?
最佳答案
我觉得你做不到。我刚刚试了一下。不过,您可以执行以下操作...在 InsertTask 的 postExecute() 方法调用的 fragment 内有一个方法。在此 fragment 方法中,您可以创建一个新的 ReviewTask 并触发该任务。这样,您的内部类只与您的父类对话,父类充当调用之间的委托(delegate)。
编辑:
public class MyFragment extends FragmentActivity {
private void delegateMethod(Object result) {
TaskB b = new TaskB();
b.doanotherthing(result);
}
class TaskA {
...
public void onPostExecute() {
Object result = new Object();
delegateMethod(result);
}
}
class TaskB {
public void doanotherthing(Object o) {
...
}
}
}
关于java - Basic Java - 一个内部(嵌套?)类可以访问另一个吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11661535/