为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

慕桂英4014372 2023-10-13 16:39:40
我的学习中有一些任务。我必须根据选择的单选按钮明确开始活动。例如,我们有两个活动供选择和主要活动。我们选择一个单选按钮并运行活动。但这个小活动都是一样的。该任务没有说明如何处理相同的活动。我想知道如何避免这种代码重复。不改变任务。public class DisplayOneActivity 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 DisplayTwoActivity 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)]);    }}}
查看完整描述

3 回答

?
萧十郎

TA贡献1815条经验 获得超13个赞

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

}

}


查看完整回答
反对 回复 2023-10-13
?
慕妹3242003

TA贡献1824条经验 获得超6个赞

您可以创建一个 baseActivity 类并从此基本活动扩展您的活动。

例如,您创建了这个基类:

public class BaseActivity extends AppCompatActivity { }

和你的班级:

public class DisplayOneActivity extends BaseActivity {}
public class DisplayTwoActivity extends BaseActivity {}

现在您可以将通用代码和方法放在基本活动中并在所有子活动中使用。



查看完整回答
反对 回复 2023-10-13
?
喵喔喔

TA贡献1735条经验 获得超5个赞

我删除了其中一门课程。添加了根据单选按钮switch-case进行选择的功能。layout.xml



查看完整回答
反对 回复 2023-10-13
  • 3 回答
  • 0 关注
  • 103 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信