概述:
本博文實現一種小程序,兩個Activity單向通信,主從關系,MainActivty 頁面布局一個EditText+Button,實現邏輯是單擊按鈕將信息發送給另外一個DisplayMessageActivity,DisplayMessageActivty頁面布局有一個TextView內容為EditText傳過來的。整個就是這么簡單
實現:
1創建空Activty項目,命名為IntentDemo,頁面布局
1.1為了實現單擊按鈕響應事件,可以有兩種方法,第一種是這樣的
public static final String tag="TEST";
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button button=(Button)findViewById(R.id.button);
button.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View view)
{
EditText edittext=(EditText)findViewById(R.id.editText);
Intent intent=new Intent(this,DisplayMessageActivtiy.class);
String message=edittext.getText().toString();
intent.putExtra(tag,message);
startActivty(intent);
}
});
}
也就是說直接在onCreate函數里面實現了監聽按鈕的方法
第二種方法是自己實現一個函數,然后與按鈕單擊事件關聯起來
這個函數在MainActivtiy.java里面實現如下:
public void sendMessage(View view)
{
Intent intent=new Intent(this,DisplayMessageActivity.class);
EditText edittext=(EditText)findViewById(R.id.editText);
String message=edittext.getText().toString();
intent.putExtra(EXTRA_MESSAGE,message);
startActivity(intent);
}
可以對比一下,要讓系統將此函數視為與 android:onClick 屬性兼容,需要這些詳細信息。具體來說,函數必須聲明以下內容:
- 公共訪問
- 空返回值
- 以 View作為唯一參數(它是之前點擊的 View對象)
2 創建一個空Activity的Activtiy


我們選擇empty activity ,然后系統自動做三件事:
① 創建DisplayMessageActivity.java
② 創建activity_display_message.xml文件
③在AndroidManifest.xml文件的<application>元素下自動添加<activity>子元素,內容如下

手動添加的內容是為了添加向上導航
DisplayMessageActivity應用不是主入口的每個屏幕(所有不是主屏幕的屏幕)都應提供導航,以便用戶在應用欄中點按“向上”按鈕后可以返回應用層次結構中的邏輯父屏幕。
需要做的全部工作是在 AndroidManifest.xml文件中聲明哪個 Activity 是邏輯父項。因此,打開 app > manifests > AndroidManifest.xml 處的文文件,找到 DisplayMessageActivity 的 <activity> 標記。
3編寫邏輯代碼
在DisplayMessageActivity的onCreate函數中提取處intent的Extra信息,並寫入到TextView中
1 @Override 2 protected void onCreate(Bundle savedInstanceState) { 3 super.onCreate(savedInstanceState); 4 setContentView(R.layout.activity_display_message); 5 Intent intent=getIntent(); 6 String message=intent.getStringExtra(MainActivity.EXTRA_MESSAGE); 7 TextView textview=(TextView)findViewById(R.id.textView); 8 textview.setText(message); 9 Log.i(tag,"DisplayMessageActivity:(1)onCreate()"); 10 }
最終效果截圖


