文章目錄
- 0.建立新的Activity步驟
- 1.最簡單的跳轉到新的Activity
- 2.帶傳回值的跳轉
一、Intent與Activity應用
0.建立新的Activity步驟
在應用中建立新的Acitivity很常見;
步驟1:建立一個class繼承Activity
步驟2:在Android-manifest.xml中添加<activity>元素
比如建立了一個名為SubActivity的Activity,則需要聲明如下:
<activity android:name=".SubActivity"></activity>
1.最簡單的跳轉到新的Activity
程式描述:MainActivity點擊按鈕後跳轉到SubActivity,MainActivity傳遞一個(name,xiazdong)給SubActivity,並獲得顯示;
效果如下:
點擊按鈕後:
IntentActivity.java
package org.xiazdong;import android.app.Activity;import android.content.Intent;import android.os.Bundle;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;public class IntentActivity extends Activity {private Button btn1; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); btn1 = (Button)this.findViewById(R.id.brn1); btn1.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {Intent intent = new Intent();intent.setClass(IntentActivity.this, SubActivity.class); //從IntentActivity跳轉到SubActivityintent.putExtra("name", "xiazdong"); //放入資料startActivity(intent); //開始跳轉}}); }}
SubActivity.java
package org.xiazdong;import android.app.Activity;import android.content.Intent;import android.os.Bundle;import android.widget.TextView;public class SubActivity extends Activity{private TextView tv1;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);this.setContentView(R.layout.sub);tv1 = (TextView)this.findViewById(R.id.tv1);Intent intent = this.getIntent(); //獲得當前的Intent Bundle bundle = intent.getExtras(); //獲得全部資料String value = bundle.getString("name"); //獲得名為name的值tv1.setText(value);}}
2.帶傳回值的跳轉
跳轉到新的Activity並在結束後將傳回值傳給原Activity
程式描述:MainActivity跳轉到SubActivity後,SubActivity執行完後返回一個結果碼給IntentActivity,執行對應的過程;
程式效果:
點擊跳轉後執行完第二個Activity後再跳回第一個Activity
IntentActivity.java
package org.xiazdong;import android.app.Activity;import android.content.Intent;import android.os.Bundle;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.TextView;public class IntentActivity extends Activity {private Button btn1;private TextView tv1; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); btn1 = (Button)this.findViewById(R.id.brn1); tv1 = (TextView)this.findViewById(R.id.tv2); btn1.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {Intent intent = new Intent();intent.setClass(IntentActivity.this, SubActivity.class);startActivityForResult(intent, 100); //requestcode=100}}); }@Overrideprotected void onActivityResult(int requestCode, int resultCode, Intent data) {super.onActivityResult(requestCode, resultCode, data);if(requestCode==100&&resultCode==200){Bundle bundle = data.getExtras();String response = bundle.getString("response");tv1.setText(response);}} }
SubActivity.java
package org.xiazdong;import android.app.Activity;import android.content.Intent;import android.os.Bundle;import android.widget.TextView;public class SubActivity extends Activity{private TextView tv1;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);this.setContentView(R.layout.sub);tv1 = (TextView)this.findViewById(R.id.tv1);Intent intent = new Intent(); //建立一個Intentintent.putExtra("response", "來自2");setResult(200,intent); //返回碼為200finish();}}