我的應用程序有2個活動。如何在Android中將數據從一個活動發送到另一個活動?
第一活動只是一個簡單的形式,其中用戶輸入課程信息(類名稱,professor..etc。)的第一個活動經過這是應該被存儲在一個列表中的數據。
在第二個活動中。問題是,只有第一個課程存儲在列表中,在第一次沒有新增加到第二個活動之後。
我該怎麼做?
我的應用程序有2個活動。如何在Android中將數據從一個活動發送到另一個活動?
第一活動只是一個簡單的形式,其中用戶輸入課程信息(類名稱,professor..etc。)的第一個活動經過這是應該被存儲在一個列表中的數據。
在第二個活動中。問題是,只有第一個課程存儲在列表中,在第一次沒有新增加到第二個活動之後。
我該怎麼做?
Intent i = new Intent(this, ActivityTwo.class);//this your current class
startActivity(i);
to pass a value in class 1
Intent i = new Intent(this, ActivityTwo.class);
i.putExtra("Value1", "This value one for ActivityTwo ");
i.putExtra("Value2", "This value two ActivityTwo");
to get values .from ActivityTwo.class
Bundle extras = getIntent().getExtras();
if (extras == null) {
return;
}
// get data via the key
String value1 = extras.getString(Intent.EXTRA_TEXT);
if (value1 != null) {
// do something with the data
}
謝謝Chetak Bhimani – user3458541
在您的第一項活動:
Intent intent = new Intent(FirstActivity.this, SecondActivity.class);
intent.putExtra("login", jObj.getString(KEY_LOGIN));
intent.putExtra("mdp", jObj.getString(KEY_MDP));
intent.putExtra("prenom", jObj.getString(KEY_PRENOM));
intent.putExtra("nom", jObj.getString(KEY_NOM));
intent.putExtra("mail", jObj.getString(KEY_MAIL));
intent.putExtra("tel", jObj.getString(KEY_TEL));
startActivity(intent);
在你的第二個活動:
Intent intent = getIntent();
if (intent != null) {
login = intent.getStringExtra("login");
mdp = intent.getStringExtra("mdp");
items.add(intent.getStringExtra("login"));
items.add(intent.getStringExtra("prenom"));
items.add(intent.getStringExtra("nom"));
items.add(intent.getStringExtra("mail"));
items.add(intent.getStringExtra("tel"));
}
一般來說,你可以從一個Activity
傳遞到另一個數據與Intent
這樣的:
在您的第一個活動中:
// Create your Intent
Intent intent = new Intent(context, TargetActivity.class);
// Now you can add extras to the intent, you identify extras with a String key
intent.putExtra("text", someString);
intent.putExtra("amount", someInteger);
// Then you start your Activity with this Intent
startActivity(intent);
在你的第二個活動:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// Only get data from Intent when the Activity is new
if(savedInstanceState == null) {
Intent intent = getIntent();
// Now you read the values from the Intent
String someString = intent.getStringExtra("text");
int someInteger = intent.getIntExtra("amount", 0);
}
}
哎其簡單的看一下代碼
發送
Intent i = new Intent(getApplicationContext(), Confirmation.class)
i.putExtra("name",etName.getText().toString()));
i.putExtra("pass",etPass.getText().toString());
startActivity(i);
在接下來的活動recieving
Bundle extras = getIntent().getExtras();
String strEmployeeID="";
if (extras != null)
{
String value = extras.getString("name");
String value1 = extras.getString("pass");
//
Toast.makeText(getBaseContext(), value, Toast.LENGTH_LONG).show();
strEmployeeID = value;
strEmployeePass = value1;
}
,
startActivityForResult(getcontext(), SecondActivity.class);
在調用此,活動開始second.In轉,第二次針對這一意圖,並在回信中必要的數據。
public void startActivityForResult(Intent intent, int requestCode, Bundle options) {
if (mParent == null) {
Instrumentation.ActivityResult ar =
mInstrumentation.execStartActivity(
this, mMainThread.getApplicationThread(), mToken, this,
intent, requestCode, options);
if (ar != null) {
mMainThread.sendActivityResult(
mToken, mEmbeddedID, requestCode, ar.getResultCode(),
ar.getResultData());
}
if (requestCode >= 0) {
mStartedActivity = true;
}
} else {
if (options != null) {
mParent.startActivityFromChild(this, intent, requestCode, options);
} else {
// Note we want to go through this method for compatibility with
// existing applications that may have overridden it.
mParent.startActivityFromChild(this, intent, requestCode);
}
}
}
下面一個則必須調用此的第一個活動(從那裏叫的意圖)。它有助於從第二活動臨危應答數據。
public void onActivityResult(int requestCode, int resultCode, Intent data) {
if(!isFeatureInstalled(getContext()))
return;
if(requestCode == GET_REMINDER_DETAILS && resultCode == Activity.RESULT_OK)
{
mFilled = true;
fillDataFromIntent(data);
checkALertRequired.setChecked(true);
}
}
只是單純地那樣做:從第一次活動,第二屆活動
傳遞數據:
Intent intent = new Intent(yourafirstctivity.this,Yoursecondactivity.class);
intent.putExtra("yourkey", yourvalue);
intent.putExtra("yourkey", yourvalue);
intent.putExtra("yourkey", yourvalue);
startActivity(intent);
,並從第一次活動的數據得到第二個活動:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.yourlayout);
String yourstring = getIntent().getExtras().getString("yourkey");
String yourstring = getIntent().getExtras().getString("yourkey");
String yourstring = getIntent().getExtras().getString("yourkey");
}
你如何發佈一些相關的代碼?向我們展示你到目前爲止所嘗試的。 –
請發佈您的代碼,以幫助很多給你一個合適的答謝謝:) –
這裏是一個很好的例子,如何切換活動之間發送數據:http://www.android-ios-tutorials.com/ 117/how-to-between-different-activities-in-android/ – Houcine