java - Basic Java - 一个内部(嵌套?)类可以访问另一个吗?

标签 java android inner-classes

我认为这是一个基本的 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/

相关文章:

java - 在 native 代码崩溃后,什么可以阻止 JVM 退出?

java - 如何将特殊字符 'β' 转换为其 unicode

android - Material Chip 输入小部件只能与 Theme.AppCompat 一起使用

Android:具有水平方向的LinearLayout将元素推离屏幕

java - 接口(interface)的实现必须实现其内部类构建器接口(interface)。怎么做?

java - 为什么我们可以有静态最终成员但不能在内部类中有静态方法?

java - SINGLE_TABLE 的 JPA 继承替代方案?

java - 在 Netbeans 7.0 中向 JFrame 添加背景图像时出现问题

android - 如何将 'Action Bar Style Generator' 与 ActionBarSherlock 一起使用?

java - 私有(private)内部类的构造函数应该声明为公共(public)的还是私有(private)的?