gpt4 book ai didi

java - 如何去除不同 Activity 中的重复代码?

转载 作者:行者123 更新时间:2023-12-01 23:15:56 24 4
gpt4 key购买 nike

我的学习中有一些任务。我必须根据选择的单选按钮明确开始 Activity 。例如,我们有两个 Activity 供选择和主要 Activity 。我们选择一个单选按钮并运行 Activity 。但这个小 Activity 都是一样的。该任务没有说明如何处理相同的 Activity 。我想知道如何避免这种代码重复。不改变任务。

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)]);
}

}
}

最佳答案

您可以使用相同的代码创建 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)]);
}
}

然后扩展另外两项 Activity 。

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);
}
}

关于java - 如何去除不同 Activity 中的重复代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58352661/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com