欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Android Intent封裝的實例詳解

 更新時間:2017年09月30日 09:46:50   作者:HzhiBo  
這篇文章主要介紹了Android Intent封裝的實例詳解的相關資料,希望通過本文能幫助到大家,需要的朋友可以參考下

Android Intent封裝的實例詳解

什么是Intent:

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

組件     啟動
Activity startActicity()
Service startService(),bindService( )
Broadcasts sendBroadcast()

使用Intent:

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

    

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

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

第二個Activity接受Intent數(shù)據(jù)代碼:

 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中參數(shù)漏掉一個有可能引起程序奔潰。那么如何避免這種情況呢:

  1. 參數(shù)是第二個Activity所需的,那么為何不由他來進行參數(shù)設定呢。按照它的規(guī)范來
  2. 將Intent的實例交給第二個Activity。它更需要這個方法的封裝。也就是開閉原則

另一種思路代碼實現(xiàn):

第一個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);
  }
}

通過比較,很明顯我們把Intent需要的傳參邏輯封裝到所要啟動的Activity,這樣的好處就是,按照我的規(guī)則來啟動我?!段业囊?guī)則我做主》。而且在其他地方啟動Main2Activity時,直接調用newIntent()傳入相應的參數(shù)即可。

如有疑問請留言或者到本站社區(qū)交流討論,感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!

相關文章

最新評論