定义泛型方法可以打开所有活动

时间:2014-06-10 05:24:25

标签: java android

我可以在所有可以打开新活动的活动的父类中定义一个活动,就像这个工作方法一样:

public class ActivityBase extends Activity{
    public <T extends Activity,U  extends Activity> void openActivity()
    {
        Intent myIntent = new Intent(T.this, U.class);
        T.this.startActivity(myIntent);
    }
}

public class ActivityChield extends ActivityBase{
    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_warning_unregistered_shipping);

        // Set widgets reference
        btnOpenActivity = (Button)findViewById(R.id.btn_wus_select_violation);

        // Set widgets event listener
        setListeners();
    }

    private void setListeners()
    {
        btnOpenActivity.setOnClickListener( new View.OnClickListener()
        {
            @Override
            public void onClick(View view)
            {
                openActivity<ActivityChield , OtherActivity>();
            }
        });
    }
}

此代码无效。请帮助我如何定义一个可以用一种方法打开所有活动的方法。

1 个答案:

答案 0 :(得分:6)

我不认为这种方式是完美的解决方案。最好是在需要时编写调用代码。

顺便提一下,这是一个解决您问题的方法

public void openActivity(Class<?> calledActivity) {
    Intent myIntent = new Intent(this, calledActivity);
    this.startActivity(myIntent);
}

您可以将其称为

openActivity(OtherActivity.class);