淺談:Android開發之intent

Intent意爲:意圖。簡單的理解就是用來從一個Activity/Service跳轉到另外一個Activity/Service,並能夠攜帶數據,也能夠在這個程序調用別的程序。這樣咱們雖然不懂如何結息條形碼,卻能夠經過開放的android平臺,在咱們的程序調用專家寫好的程序來實現功能。android

 

Intent的用法:工具

 

1)從MainActivity跳轉到NewActivity測試

Intent intent=new Intent(MainActivity,this,NewActivity.this);this

startAcitivity(intent);spa

 

(2)MainActivity跳轉到NewActivity,並攜帶數據ci

有兩種寫法,本質上並沒有很大區別get

Intent intent=new Intent(MainActivity,this,NewActivity.this);it

Bundle bundle=new Bundle();ast

bundle.putString("name", "value");class

intent.putExtras(bundle);

startAcitivity(intent);

 

接收

mintent=this.getIntent();

bundle=mintent.getExtras();

String a=bundle.getString("name");

 

---------------------------------------------------------------------------------

 

Intent intent=new Intent(MainActivity,this,NewActivity.this);

intent.putExtra("name","value");

startAcitivity(intent);

 

接收

String a=mintent.getStringExtra("name");

第一種方法當bundle的值要傳給多個activity時較爲簡便。

 

(3)MainActivity跳轉到NewActivity,並攜帶數據,而且要從NewActivity跳轉回MainActivity且攜帶數據。

 

Intent intent=new Intent(MainActivity.this,NewActivity.class);

Bundle bundle=new Bundle();

bundle.putString("name","value");

intent.putExtras(bundle);

startActivityForResult(intent,1234);

 

protected void onActivityResult(int requestCode,int resultCode,Intent data)

{

  if (resultCode==4321)

  {

    String a=data.getStringExtra("name");

    Toast.makeText(this, a, Toast.LENGTH_LONG).show();;

  }

  super.onActivityResult(requestCode, resultCode, data);

}

 

//請求碼requestCode=1234

 

mintent.putExtra("name", "你好");

setResult(4321, mintent);

finish();

 

//結果碼result=4321

 

//程序例子A調用程序例子B

 

intent.setClassName("com.example.lizib", "com.example.lizib.MainActivity");

Bundle bundle=new Bundle();

bundle.putString("STR_INPUT", "HI,我來自例子A...");

intent.putExtras(bundle);

startActivityForResult(intent, 1234);

 

protected void onActivityResult(int requestCode,int resultCode,Intent data)

{

if (resultCode!=RESULT_OK)

{

return;

}

else

{

String aaa=data.getStringExtra("STR_BACK");

tv.setText("來自例子B:"+aaa);

}

super.onActivityResult(requestCode, resultCode, data);

}

 

//接收

 

Bundle bundle=getIntent().getExtras();

strRet=bundle.getString("STR_INPUT");

 

//返回

 

Bundle bundle=new Bundle();

bundle.putString("STR_BACK", "我是例子B");

Intent intent=new Intent();

intent.putExtras(bundle);

setResult(RESULT_OK,intent);

finish();

 

另外推薦一款我經常使用第三方APP測試工具:www.ineice.com

相關文章
相關標籤/搜索