你能参数化意图创建功能吗?

时间:2012-05-22 23:35:17

标签: android function android-activity android-intent

为了简化一些代码,我想知道是否可以参数化在Android应用程序中启动活动的代码,这样就可以代替5

    public void showSettings(View view) {
    Intent SettingsActivity = new Intent(MainActivity.this, Settings.class);
    startActivity(SettingsActivity);

我可以做类似以下的事情

 public void showActivity(View view, String ActivityName) {
        Intent ActivityName = new Intent(MainActivity.this, ActivityName.class);
        startActivity(ActivityName);

然后,对于UI中的每个按钮,我只需将以下内容应用于“onclick”事件

  

showActivity(设置);

  

showActivity(结构域);

这样可以在我的应用中节省大约40-50行代码。显然我知道上面的代码是不正确的,但我不确定是否可以做我想要完成的事情。

2 个答案:

答案 0 :(得分:2)

如下:

public <T> void showActivity(View view, Class<T> activity) {
    Intent activityName = new Intent(MainActivity.this, activity);
    startActivity(activityName);
}

您可以使用

调用它
showActivity(Settings.class);

答案 1 :(得分:1)

我建议使用ACTIONs(String),而不是准确指定上下文和类。这样你甚至可以在应用程序之间共享活动,如果你决定切换到不同的活动类,你只能编辑android清单,而不是编辑所有java源代码调用这个活动。