中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Android中如何對Intent進行封裝

發布時間:2022-04-11 15:55:32 來源:億速云 閱讀:170 作者:iii 欄目:編程語言

這篇文章主要介紹了Android中如何對Intent進行封裝的相關知識,內容詳細易懂,操作簡單快捷,具有一定借鑒價值,相信大家閱讀完這篇Android中如何對Intent進行封裝文章都會有所收獲,下面我們一起來看看吧。

Android Intent封裝的實例詳解

什么是Intent:

Intent是協調應用間、組件之間的通訊和交互。通過Intent你可以啟動Activity、Service、Broadcasts。更可以跨程序調用第三方組件。例如:啟動撥打電話界面、音樂播放等。 

組件    啟動
ActivitystartActicity()
ServicestartService(),bindService( )
BroadcastssendBroadcast()

使用Intent:

栗子:在一個Activity中添加一個點擊按鈕->點擊啟動第二個Activity(需要兩個String類型的參數)

     Android中如何對Intent進行封裝

Android中如何對Intent進行封裝

第一個Activity的按鈕點擊代碼:

 public void onclick(View view){
    Intent intent=new Intent(this,Main2Activity.class);
    intent.putExtra("text1","xiaoming");
    intent.putExtra("text2","中國人");
    startActivity(intent);
  }

第二個Activity接受Intent數據代碼:

 protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main2);
    ButterKnife.bind(this);
    initView();
  }

  private void initView() {
    String text1 = getIntent().getStringExtra("text1");
    String text2 = getIntent().getStringExtra("text2");
    mTextView.setText(text1);
    mTextView2.setText(text2);
  }

這是常見的Intent的使用,但是它存在這很大弊端。假如你的項目越來越多,你在啟動第二個Activity中參數漏掉一個有可能引起程序奔潰。那么如何避免這種情況呢:

  1. 參數是第二個Activity所需的,那么為何不由他來進行參數設定呢。按照它的規范來

  2. 將Intent的實例交給第二個Activity。它更需要這個方法的封裝。也就是開閉原則

另一種思路代碼實現:

第一個Activity的按鈕點擊代碼:

 public void onclick(View view){
    //調用第二個Activity封裝好的Intent
    Intent intent = Main2Activity.newIntent(MainActivity.this, "hsis", "wodhis");
    startActivity(intent);
  }

第二個Activity的代碼:

public class Main2Activity extends AppCompatActivity {
  private static final String INTENT_TEXT1="intent_text1";
  private static final String INTENT_TEXT2="intent_text2";

  private String text1,text2;
  @butterknife.Bind(R.id.textView)
  TextView mTextView;
  @butterknife.Bind(R.id.textView2)
  TextView mTextView2;

  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main2);
    ButterKnife.bind(this);
    initIntent();
    initView();
  }
  public static Intent newIntent(Activity activity,String te, String te2){
    Intent intent=new Intent(activity,Main2Activity.class);
    intent.putExtra(INTENT_TEXT1,te);
    intent.putExtra(INTENT_TEXT2,te2);
    return intent;
  }
  private void initIntent(){
    text1=getIntent().getStringExtra(INTENT_TEXT1);
    text2=getIntent().getStringExtra(INTENT_TEXT2);
  }
  private void initView() {
    mTextView.setText(text1);
    mTextView2.setText(text2);
  }
}

關于“Android中如何對Intent進行封裝”這篇文章的內容就介紹到這里,感謝各位的閱讀!相信大家對“Android中如何對Intent進行封裝”知識都有一定的了解,大家如果還想學習更多知識,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

景东| 宁安市| 名山县| 江达县| 牙克石市| 洛阳市| 比如县| 彭水| 贵阳市| 和政县| 镇雄县| 昭通市| 岳西县| 潞西市| 庆元县| 师宗县| 襄汾县| 延寿县| 武宁县| 隆回县| 灵武市| 镇原县| 无极县| 高邑县| 镇巴县| 平武县| 许昌市| 洞口县| 金溪县| 怀安县| 日喀则市| 西贡区| 上林县| 田林县| 桐城市| 南皮县| 东明县| 曲周县| 宁阳县| 柳林县| 炎陵县|