91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

Android中怎么對Intent進行封裝

發布時間:2021-06-28 17:12:25 來源:億速云 閱讀:101 作者:Leah 欄目:移動開發

本篇文章為大家展示了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進行封裝,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業資訊頻道。

向AI問一下細節

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

AI

宁海县| 扎赉特旗| 巧家县| 河源市| 仪陇县| 佛冈县| 合川市| 合肥市| 平谷区| 温泉县| 双峰县| 阳城县| 甘孜| 杨浦区| 延川县| 卢氏县| 布尔津县| 英山县| 崇信县| 华安县| 广东省| 云浮市| 大理市| 波密县| 镇巴县| 社旗县| 宿州市| 文水县| 吉林省| 临猗县| 乐都县| 五华县| 博湖县| 巴中市| 泰和县| 托克逊县| 普定县| 威海市| 大安市| 蓬莱市| 永胜县|