亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何去除不同活動中的重復代碼?

如何去除不同活動中的重復代碼?

慕桂英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 關注
  • 143 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號