0

I'm learning Android and I didn't find an answer on the web. I want to save a string from an EditText on my MainActivity to restore it on my third Activity -> Activity3 I want this string to be displayed on a TextView of this Activity.

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);
 ...................}

in my activity_main.xml :

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

and

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 !!


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

here is activity3.xml

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

How can I do that ?

4

4 回答 4

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);
于 2013-04-24T06:27:27.393 回答
0

您可以通过多种方式做到这一点...

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

当您像这样创建活动时,另一种通过活动意图传递您的价值的方法:intent.putExtra' and get value into your activity viagetExtra`

您可以在全局位置定义变量的另一种方法考虑创建一个类也包含此类公共变量,并且您可以从那里从任何地方访问这些变量。

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

于 2013-04-24T06:27:36.917 回答
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”是您要查找的最终输出。

于 2013-04-24T06:29:40.880 回答
0

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

或者您可以从中获取字符串EditText并制作字符串Globalpublic然后static在任何其他类中使用它。

于 2013-04-24T06:20:05.937 回答