需要帮助在活动之间保存/恢复字符串

时间:2013-04-24 06:15:30

标签: android string android-activity save restore

我正在学习Android,但我没有在网上找到答案。我想保存EditTextMainActivity的字符串,以便在我的第三个Activity上恢复它 - > Activity3 我希望此字符串显示在TextView的{​​{1}}上。

Activity

在我的activity_main.xml中:

public class MainActivity extends Activity {

  private EditText nomPrenom;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    nomPrenom = (EditText) findViewById(R.id.nomPrenom);
 ...................}

android:id="@+id/nomPrenom"
android:text="@string/nomPrenom"

这里是activity3.xml

public class Activity3 extends ListActivity {

private TextView yourName;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_activity3);
    yourName = (TextView) findViewById(R.id.nomPrenom);
    yourName.setText("take the name of activity 1 here"); //<-- this line causes crash !!


..................}

我该怎么做?

4 个答案:

答案 0 :(得分:1)

首先,你的问题不是那么清楚......但是根据我认为你需要从edittext中获取数据(在主要活动中),然后将其传递给第三个活动。

对于此,您需要使用Intent将数据从一个活动传递到其他活动。

              Example  - 
              nomPrenom = (EditText) findViewById(R.id.nomPrenom);
              nomPrenom .getText.toString();

             Intent in = new Intent(MainActivity.this, Activity3 .class);
                    in.putExtra("value",nomPrenom .getText.toString()) ;

在Activity3中接收这样的意图: -

                       String strValue = getIntent().getExtras().getString("value");
                       yourName = (TextView) findViewById(R.id.yourName);
                       yourName.setText(strValue);

答案 1 :(得分:0)

使用Intent.putExtra("Your text here")并将其传递给其他活动。

或者您可以从EditText获取字符串并创建字符串Globalpublicstatic,然后在任何其他类中使用它。

答案 2 :(得分:0)

你可以用很多方式做到这一点......

您可以使用共享首选项,以便可以从任何地方访问它。但是,在您关闭申请后,共享偏好将保留您的价值。

在您创建活动时,另一种方式可以通过您的活动意图传递您的价值:intent.putExtra' and get value into your activity via getExtra`

另一种可以在全球范围内定义变量的方法考虑创建一个类也保留这样的公共变量,然后从那里可以从任何地方访问这些变量。

这三种方式都可以根据您的要求进行更改。

答案 3 :(得分:0)

要从MainActivity移动到Activity3,请编写以下代码

//get your edittext's text here
String text = nomPrenom.getText().toString();

//move to Activity3
Intent intent = new Intent(MainActivity.this, Activity3.class);
//pass the edit text value to Activity3
intent.putExtra("EditTextValue", text);
//start Activity3
startIntent(intent);

在Activity3中,要​​获取编辑文本值,请执行以下操作。

//get your edit text value here which is passed in MainActivity
String text = getIntent().getStringExtra("EditTextValue");

变量“text”是您要查找的最终输出。