2

首先,我是 Android 平台上的新手和纯自学者。我对 Java 的了解仍然很低,但自 2 周以来我取得了进步 :-)

我有十几个带有导航按钮的活动(pref,next,...)。对于所有这些按钮,我已将这样的方法集成到当前活动类的右侧按钮中:

private void showPrevActivity() {
    Intent intent = new Intent("ThePrevActivity");
    this.startActivity(intent);
}

private void showNextActivity() {
    Intent intent = new Intent("TheNextActivity");
    this.startActivity(intent);
}

没关系,直到用户告诉我通过添加新按钮可以更轻松地导航到应用程序的线性方式。现在,最终的应用程序就像蜘蛛网。

所以,我想创建一个包,即 Navigation,并将所有 showX 方法(或者,最好的方法,一个通用的 showActivity 方法)添加到这个包中。我创造了这个

package fr.demo.appli.navigation;
import android.content.Intent;
public class Navigation {
    // Add Show Methods to display all the Activities
    public static void showLogin() {
        //...
}
    public static void showOneActivity() {
        Intent intent = new Intent("OneActivity");
        this.startActivity(intent);
    }
}

问题是我无法在导航类中访问“this”。我想我的水平很低,看如何做到这一点。任何帮助/建议都会非常有用。

谢谢,

文森特

4

1 回答 1

0

好的,我找到了解决方案(我意识到我真的需要提高我的 Java 水平......)。我希望它能帮助其他用户。

首先,我创建了一个包含我所有东西的包 Navigation(我的目的也是绕过 Eclipse 关于活动名称自动完成的限制。

首先,我按照描述创建了我的包:

package fr.demo.appli.navigation;

import android.app.Activity;
import android.content.Intent;

public class Navigation {
    public static class Screens {
        //
        public static String Activity1Activity = "Activity1Activity";
        public static String Activity2Activity = "Activity2Activity";
    }
    public static void showActivity(Activity curActivity, String nextActivityName) {
        Intent intent = new Intent(nextActivityName);
        curActivity.startActivity(intent);
    }
}

然后,在我的代码中,我只需要调用我的 showActivity 方法,如下所示:

例如#1:在点击监听器内

Navigation.showActivity(ActivityName.this, Navigation.Screens.Activity1Activity);

例如#2:最简单的调用

Navigation.showActivity(this, Navigation.Screens.Activity1Activity);

所以,我猜大多数高级用户(世界其他地方)可能会发现一些增强、调整。但是,根据我的情况,它运行良好,可以为我节省很多时间。

于 2013-11-19T10:32:00.667 回答