假设我有2个活动activity1和activity2。在activity1中,我有一个简单的表单。这是xml文件。
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_alignParentLeft="true"
android:layout_alignParentRight="true"
android:layout_alignParentTop="true"
android:orientation="vertical" >
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginBottom="25dp"
android:layout_marginTop="25dp"
android:text="@string/m_informations"
android:textAppearance="?android:attr/textAppearanceLarge" />
<TextView
android:id="@+id/textView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:text="@string/FirstName"
android:textAppearance="?android:attr/textAppearanceMedium" />
<EditText
android:id="@+id/editText1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ems="10"
android:inputType="textPersonName" >
<requestFocus />
</EditText>
<TextView
android:id="@+id/textView3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:text="@string/Name"
android:textAppearance="?android:attr/textAppearanceMedium" />
<EditText
android:id="@+id/editText2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ems="10"
android:inputType="textPersonName" />
<TextView
android:id="@+id/textView4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:text="@string/Email"
android:textAppearance="?android:attr/textAppearanceMedium" />
<EditText
android:id="@+id/editText3"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ems="10"
android:inputType="textEmailAddress" />
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:text="@string/confirm" />
</LinearLayout>
我现在想要在activity2中使用这些Edittexts的数据,因为他们知道这两个活动之间没有链接。我的意思是在这两项活动之间,还有其他活动开始。
我想在我在activity2中创建的特定函数中使用这些数据。
让我们说它是这样的:
void write(String st)
{
st = edittext1 value
}
例如,st必须获取activity1
的edittext1的值提前谢谢!
答案 0 :(得分:1)
Intent in = new Intent(activity1.this, activity2.class);
in.putExtra("message", message);
startActivity(in);
在acticity2中,您可以获得如下数据:
Bundle bundle = getIntent().getExtras();
String message = bundle.getString("message");
如果您在activity1中获取了一些数据。但是从activity1你调用activity3,然后从activity3调用activity2。并且您希望activity2中的数据然后您可以使用sharepreference:
在您获取数据的activity1中,您可以存储以下数据:
SharedPreferences.Editor editor = getSharedPreferences(MY_PREFS_NAME, MODE_PRIVATE).edit();
editor.putString("myName", "PPD");
editor.putInt("id", 1);
editor.commit();
在activity2中你会得到它:
SharedPreferences prefs = getSharedPreferences(MY_PREFS_NAME, MODE_PRIVATE);
String name = prefs.getString("myName", "No Name");
int idName = prefs.getInt("id", 0);
答案 1 :(得分:1)
使用“共享首选项”存储和访问其他活动中的数据。 在共享首选项中,我们创建一个只能在当前应用程序中访问的文件,我们在其中添加键值对,然后在需要时加载它们
实施例。在活动1中:
EditText et1=(EditText) findViewById(R.id.editText1);
String et1_val=et1.getText().toString();
SharedPreferences pref=getSharedPreferences("MYPREF", 0);
//creating a shared preference with the name "MYPREF" and 0 is for default settings
final SharedPreferences.Editor editor=pref.edit();
//creating an editor to add the KeyValue Pairs to the preferences file.
editor.putString("et1_val",et1_val);
//adding the keyvalue pairs to the editior.
editor.commit();
//To close and commit the changes in the shared preference
在活动2中: 你的方法是这样的:
void write(String st)
{
SharedPreferences pref=getSharedPreferences("MYPREF", 0);
//getting reference to the shared preference we created.
String edit_text1_value=pref.getString("et1_val","");
//"" is the default value when the requested key has no value associated with it.
st=edit_text1_value;
//copiying the value of the edit text 1 into st
}
有关更多详情请访问此链接: Shared Preferences in Android