Android:Intent傳遞數據


接收調用的Activity銷毀后返回的數據

調用MainActivity中:顯式Intent調用並設置requestCode為1,在回調函數中接收返回的數據。

public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        setContentView(R.layout.activity_main);
        Button button = (Button)findViewById(R.id.button_exit);
        button.setOnClickListener(new View.OnClickListener() {
			@Override
			public void onClick(View v) {
				Intent intent = new Intent(MainActivity.this, TestActivity.class);
				startActivityForResult(intent, 1);
			}
		});
    }
    
    //調用的Activity銷毀返回后執行的回調方法
    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    	switch (requestCode) {
		case 1:
			if(resultCode == RESULT_OK){
				String value = data.getStringExtra("key");
				Log.d("debug", value);
			}
			break;
		default:
			break;
		}
    }
}

被調用Activity中:通過兩種不同形式返回不同數據(按button返回和按系統返回鍵返回)

public class TestActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_test);      
        Button button = (Button)findViewById(R.id.test_button);
        button.setOnClickListener(new View.OnClickListener() {		
			@Override
			public void onClick(View v) {
				Intent intent = new Intent();
				intent.putExtra("key", "value_data_button");
				setResult(RESULT_OK, intent);
				finish();
			}
		});        
    }


    //系統返回鍵事件處理函數
	@Override
	public void onBackPressed() {
		Intent intent = new Intent();
		intent.putExtra("key", "value_data_backpressed");
		setResult(RESULT_OK, intent);
		finish();
	}
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM