1. 程式人生 > >如何使用Intent建立兩個互動的Activity

如何使用Intent建立兩個互動的Activity

                                                         作者:段興              2014-5-27

1  :建立一個最基礎的android application 比如MyFisrtApp,細節及步驟請參照:http://developer.android.com/training/basics/firstapp/index.html

 下面重點講解如何建立一個新的Activity,並且接受第一個Main_Activity的資訊:


1  : 在fragment_main.xml中新增一個按鈕,用作傳送

<Buttonandroid:layout_width
="wrap_content"android:layout_height="wrap_content"android:text="@string/button_send"android:onClick="sendMessage"/>
2: 在MainActivity class中新增如下方法,作為按下按鈕後的回撥函式。
/** Called when the user clicks the Send button */publicvoid sendMessage(View view){// Do something in response to button}
3:在sendMessage()方法中再建立一個Intent來啟動一個新的Activity命名為:DisplayMessageActivity,具體程式碼如下,
Intent intent =newIntent(this,DisplayMessageActivity.class);
4:繼續在sendMessage()方法中新增如下程式碼,用以找到1中已建立的EditText中並且從中取出使用者輸入的字串放到變數EXTRA_MESSAGE當中。
EditText editText =(EditText) findViewById(R.id.edit_message);String message = editText.getText().toString();
intent.putExtra(EXTRA_MESSAGE, message);
5:在main_Activity當宣告變數EXTRA_MESSAGE

publicclassMainActivityextendsActionBarActivity{publicfinalstaticString EXTRA_MESSAGE ="com.example.myfirstapp.MESSAGE";...}
6:新增完畢後sendMessage()方法的內容如下:
/** Called when the user clicks the Send button */publicvoid sendMessage(View view){Intent intent =newIntent(this,DisplayMessageActivity.class);EditText editText =(EditText) findViewById(R.id.edit_message);String message = editText.getText().toString();
    intent.putExtra(EXTRA_MESSAGE, message);
    startActivity(intent);}
總結:上述過程實現的是在main_activity中添加了一個按鈕和一個可輸入文字框,並且建立了一個Intent用以啟動DisplayMessageActivity.

7:在原來的project中建立一個新的Android activity,名叫DisplayMessageActivity,注意它的hierarchial Parent 是:                 com.example.myfirstapp.MainActivity

8:建立完畢後在DisplayMessageActivity class當中應該有如下的方法和類:

  protected void onCreate(Bundle savedInstanceState) :

  public boolean onCreateOptionsMenu(Menu menu):

  public boolean onOptionsItemSelected(MenuItem item):

  public static class PlaceholderFragment extends Fragment:

9:在String。xml下新增如下內容,用作

<resources>
    ...
    <stringname="title_activity_display_message">My Message</string></resources>

10:在DisplayMessageActivity 類的onCreate()方法中新增如下內容,用以取得main_activity中建立的Intent並取得傳送過來的內容。

Intent intent = getIntent();String message = intent.getStringExtra(MainActivity.EXTRA_MESSAGE);
11:在DisplayMessageActivity 的類的onCreate()方法中新增內容,用以建立一個文字視窗顯示輸入的內容,最後完整的函式體如下所示:
@Overridepublicvoid onCreate(Bundle savedInstanceState){super.onCreate(savedInstanceState);// Get the message from the intentIntent intent = getIntent();String message = intent.getStringExtra(MainActivity.EXTRA_MESSAGE);// Create the text viewTextView textView =newTextView(this);
    textView.setTextSize(40);
    textView.setText(message);// Set the text view as the activity layout
    setContentView(textView);}
至此,一個簡單的多Activity互動程式建立完畢,執行結果如下:


本文參考網址如下:

http://developer.android.com/training/basics/firstapp/starting-activity.html

更詳細的內容讀者可以參考該網址,同時也向該作者致以最誠摯的謝意。