Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android系統教程 >> Android開發教程 >> Android開發入門(二)使用意圖 2.3 從Intent返回結果

Android開發入門(二)使用意圖 2.3 從Intent返回結果

編輯:Android開發教程

startActivity()方法可以調用另外的Activity,但這種方法不會給當前的Activity返回一個結果。例如 ,你有一個Activity提示用戶輸入用戶名和密碼,用戶輸入的信息需要被“回傳”給這個輸入信息的 Activity,那就需要使用startActivityForResult()方法。

1. secondactivity.xml中的代碼。

<?xml version="1.0" encoding="utf-8"?>     
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:orientation="vertical" >     
         
    <TextView     
        android:layout_width="fill_parent" 
        android:layout_height="wrap_content" 
        android:text="This is the Second Activity!" />     
         
    <TextView     
        android:layout_width="fill_parent" 
        android:layout_height="wrap_content" 
        android:text="Please enter your name" />     
         
    <EditText     
        android:id="@+id/txt_username" 
        android:layout_width="fill_parent" 
        android:layout_height="wrap_content" />     
         
    <Button     
        android:id="@+id/btn_OK" 
        android:layout_width="fill_parent" 
        android:layout_height="wrap_content" 
        android:onClick="onClick" 
        android:text="OK" />     
         
</LinearLayout>

2. SecondActivity.java中的代碼。

public class 

SecondActivity extends Activity {     
    @Override 
    public void onCreate(Bundle savedInstanceState) {     
        super.onCreate(savedInstanceState);     
        setContentView(R.layout.secondactivity);     
    }     
         
    public void onClick(View view) {     
        Intent data = new Intent();     
         
        // ---get the EditText view---     
        EditText txt_username = (EditText) findViewById(R.id.txt_username);     
         
        // ---set the data to pass back---     
        data.setData(Uri.parse(txt_username.getText().toString()));     
        setResult(RESULT_OK, data);     
         
        // ---closes the activity---     
        finish();     
    }     
}

3. UsingIntentActivity.java中的代碼。

public class UsingIntentActivity 

extends Activity {     
    int request_Code = 1;     
         
         
    /** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) {     
        super.onCreate(savedInstanceState);     
        setContentView(R.layout.main);     
    }     
         
         
    public void onClick(View view) {     
        // startActivity(new Intent("net.horsttnann.SecondActivity"));     
        // or     
        // startActivity(new Intent(this, SecondActivity.class));     
         
         
        startActivityForResult(new Intent("net.horsttnann.SecondActivity"),     
                request_Code);     
    }     
         
         
    public void onActivityResult(int requestCode, int resultCode, Intent data) {     
        if (requestCode == request_Code) {     
            if (resultCode == RESULT_OK) {     
                Toast.makeText(this, data.getData().toString(),     
                        Toast.LENGTH_SHORT).show();     
            }     
        }     
    }     
}

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved