我的学习有一些任务。我必须根据选择的单选按钮显式启动活动。例如,我们有两个选择活动和主要活动。我们选择一个单选按钮并运行活动。但是这种次要活动是相同的。该任务没有说明如何处理相同的活动。我想知道如何避免这种代码重复。无需更改任务。
public class DisplayOneActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_display_one);
TextView textView = findViewById(R.id.textView);
textView.setText(getIntent().getStringExtra(KEY_TEXT));
textView.setTextColor(getIntent().getIntExtra(KEY_COLOR, Color.RED));
if (getIntent().getBooleanExtra(KEY_RANDOM_ALIGN, false)){
Random rnd = new Random(System.currentTimeMillis());
textView.setTextAlignment(TEXT_ALIGN[rnd.nextInt(TEXT_ALIGN.length)]);
}
}
}
public class DisplayTwoActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_display_one);
TextView textView = findViewById(R.id.textView);
textView.setText(getIntent().getStringExtra(KEY_TEXT));
textView.setTextColor(getIntent().getIntExtra(KEY_COLOR, Color.RED));
if (getIntent().getBooleanExtra(KEY_RANDOM_ALIGN, false)){
Random rnd = new Random(System.currentTimeMillis());
textView.setTextAlignment(TEXT_ALIGN[rnd.nextInt(TEXT_ALIGN.length)]);
}
}
}
答案 0 :(得分:0)
您可以使用相同的代码创建BaseActivity,并使用BaseActivity扩展DisplayOneActivity和DisplayTwoActivity。
public class BaseDisplayActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_display_one);
TextView textView = findViewById(R.id.textView);
textView.setText(getIntent().getStringExtra(KEY_TEXT));
textView.setTextColor(getIntent().getIntExtra(KEY_COLOR, Color.RED));
if (getIntent().getBooleanExtra(KEY_RANDOM_ALIGN, false)){
Random rnd = new Random(System.currentTimeMillis());
textView.setTextAlignment(TEXT_ALIGN[rnd.nextInt(TEXT_ALIGN.length)]);
}
}
然后再扩展另外两个活动。
public class DisplayOneActivity extends BaseDisplayActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
}
public class DisplayTwoActivity extends BaseDisplayActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
}
答案 1 :(得分:0)
您可以创建baseActivity calss并从该基本活动中扩展您的活动。
例如,您已创建此基类:
public class BaseActivity extends AppCompatActivity { }
和您的课程:
public class DisplayOneActivity extends BaseActivity {}
public class DisplayTwoActivity extends BaseActivity {}
现在您可以在基本活动中添加通用代码和方法,并在所有子活动中使用。
答案 2 :(得分:0)
我删除了其中一门课。添加了switch-case
,可根据单选按钮选择layout.xml
。