我可以在所有可以打开新活动的活动的父类中定义一个活动,就像这个工作方法一样:
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>();
}
});
}
}
此代码无效。请帮助我如何定义一个可以用一种方法打开所有活动的方法。
答案 0 :(得分:6)
我不认为这种方式是完美的解决方案。最好是在需要时编写调用代码。
顺便提一下,这是一个解决您问题的方法
public void openActivity(Class<?> calledActivity) {
Intent myIntent = new Intent(this, calledActivity);
this.startActivity(myIntent);
}
您可以将其称为
openActivity(OtherActivity.class);