[英]sending data from one activity to another
我正在嘗試從子活動向主要活動發送一些字符串數據,並在編輯文本字段中顯示該數據。 這是我在子活動中的代碼:
button.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
Intent in = new Intent();
in.setClass(getApplicationContext(),
DelaySmsActivity.class);
in.putExtra("values", stringDataForSend);
setResult(RESULT_OK, in);
finish();
}
});
這是主要活動中我試圖獲得該價值的代碼:
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
parametar = data.getStringExtra("values");
editTextField.setText(parametar);
}
運行此命令后,我的editTextField為空。
為了傳遞諸如字符串之類的簡單數據,我改用Bundles。
在您的onClick中:
Intent yourIntent = new Intent(currentActivity.this, NextActivity.class);
Bundle yourBundle = new Bundle();
yourBundle.putString("name", string);
yourIntent.putExtra(yourBundle);
startActivity(yourIntent);
然后,在下一個活動的onCreate中,檢索您的字符串,如下所示:
Bundle bundle = getIntent().getExtras();
String passedValue = bundle.getString("name");
嘗試這樣說,您當前的活動是X,下一個活動是Y:-
Intent main= new Intent(X.this, Y.class);
main.putExtra("key", "somevalue");
X.this.startActivity(main);
在Y活動上onCreate
Intent intent = getIntent();
String value= intent.getStringExtra("key");
由於您不提交代碼,因此這里的示例可以為您提供幫助
調用活動時,請使用startActivityForResult() not startActivity()
public class CheckStartActivityForResult extends Activity {
int requestCode;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
Log.d("CheckStartActivity","OnCreate");
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Intent i = new Intent(this,CalledActivity.class);
startActivityForResult(i, requestCode);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
Log.d("CheckStartActivity","onActivityResult and resultCode = "+resultCode);
// TODO Auto-generated method stub
super.onActivityResult(requestCode, resultCode, data);
if(resultCode==1){
Toast.makeText(this, "Pass", Toast.LENGTH_LONG).show();
}
else{
Toast.makeText(this, "Fail", Toast.LENGTH_LONG).show();
}
}
}
和所謂的活動
public class CalledActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Log.d("CalledActivity","OnCreate ");
//String value = "rahul";
Intent in = new Intent();
setResult(1,in);//Here I am Setting the Requestcode 1, you can put according to your requirement
finish();
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.