2012年8月17日 星期五

Intent

基本的 Intent 應用

Using intent.activity

1. 在  AndroidManifest.xml裡加入<activity></activity>;  ".Cutee"指的是另建的java class 檔名:


<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.cq.intent.linchen"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk android:minSdkVersion="7" />

    <application
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name" >
        <activity
            android:label="@string/app_name"
            android:name=".IntentActivity" >
            <intent-filter >
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity android:label="@string/app_name_2" android:name=".Cutee"></activity>
    </application>

</manifest>



2. 在MainActivity.java要加入

     Intent intent = new Intent(IntentActivity.this, Cutee.class);
     startActivity(intent);  // 如果要等待回傳則是
                                   :startActivityForResult(intent, SHOW_EDITOR);

***************************

@Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        //Set up button1
        Button button1 = (Button) findViewById(R.id.button1);
        button1.setOnClickListener(new View.OnClickListener() {

@Override
public void onClick(View v) {
//建立 this 和要傳遞目的的關係
Intent intent = new Intent(MainActivity.this, Cutee.class);
EditText editText1 = (EditText)findViewById(R.id.editText1);
CharSequence text = editText1.getText();
//將傳遞資料安置在共同記憶區,變數名稱:TEXT
intent.putExtra("TEXT", text);
//切換到CUTEE.java,同時等待回應,設定requestCode=SHOW_EDITOR
startActivityForResult(intent, SHOW_EDITOR);
}
});
    }




//MainActivity is waiting the replying message
    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data){
    if (requestCode == SHOW_EDITOR){
    if (resultCode == RESULT_OK){
    TextView textView2 = (TextView) findViewById(R.id.textView2);
    textView2.setText("RESULT_OK: " + data.getCharSequenceExtra("TEXT"));
    }
    }
    }


*********************************************
  Cutee.java

public class Cutee extends Activity{
//Cutee主程式
@Override
public void onCreate (Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.chatter);

Button button = (Button) findViewById(R.id.cuteeButton1);
//自共同記憶區取得傳遞資料,變數名稱:TEXT
Bundle extras = getIntent().getExtras();
if (extras != null){
EditText editText = (EditText) findViewById(R.id.cuteeEditText1);
editText.setText(extras.getCharSequence("TEXT"));
}
//設定 chatterButton1 的操作
button.setOnClickListener(new View.OnClickListener() {

@Override
public void onClick(View v) {
Intent intent = new Intent();
EditText editText = (EditText)findViewById(R.id.cuteeEditText1);
CharSequence text = editText.getText();
//將回傳資料安置在共同記憶區,變數名稱:TEXT
intent.putExtra("TEXT", text);
//回應信息,回到 MainActivity, resultCode==RESULT_OK
setResult(RESULT_OK, intent);
//End of Cutee
finish();

}
});
}
}

沒有留言:

張貼留言