如何去除不同活动中的重复代码?

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


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

    }


}

}


慕桂英4014372
浏览 104回答 3
3回答

萧十郎

您可以使用相同的代码创建 BaseActivity,并使用 BaseActivity 扩展 DisplayOneActivity 和 DisplayTwoActivity。public class BaseDisplayActivity extends AppCompatActivity {@Overrideprotected 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 {@Overrideprotected void onCreate(Bundle savedInstanceState) {    super.onCreate(savedInstanceState);}}public class DisplayTwoActivity extends BaseDisplayActivity {@Overrideprotected void onCreate(Bundle savedInstanceState) {    super.onCreate(savedInstanceState);}}

慕妹3242003

您可以创建一个 baseActivity 类并从此基本活动扩展您的活动。例如,您创建了这个基类:public class BaseActivity extends AppCompatActivity { }和你的班级:public class DisplayOneActivity extends BaseActivity {} public class DisplayTwoActivity extends BaseActivity {}现在您可以将通用代码和方法放在基本活动中并在所有子活动中使用。

喵喔喔

我删除了其中一门课程。添加了根据单选按钮switch-case进行选择的功能。layout.xml
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java