简体   繁体   中英

How to save user input from EditText to a variable to be used on a different Activity

I have an edit text in Android Studio which I want a user to enter a name which can then be stored as a variable. I then want to add this variable to a textview in my main activity.

Right now all a have is a blank activity with an edit text and button to save the user input as a variable.

Edit

Ok, I am going to change my approach. In my main activity, I have two text views. If I changed them to edit texts, then how would I save them from the main activity without a save button so that what the user typed would still be there?

Save it in Shared Preferences and then retrieve it from the other activity.

To save a String in shared preferences, you can create a method like the following:

public static void setUsername(Context context, String username) {
    SharedPreferences prefs = context.getSharedPreferences("myAppPackage", 0);
    SharedPreferences.Editor editor = prefs.edit();
    editor.putString("username", username);
    editor.commit();
 }

To retreive it :

public static String getUsername(Context context) {
    SharedPreferences prefs = context.getSharedPreferences("myAppPackage", 0);
    return prefs.getString("username", "");

 }

Edited:
In the activity which contains the EditText, you can call the method as follows:
setUsername(this,myEditText.getText().toString());

And in the Activitiy that contains the TextView:
myTextView.setText( getUsername(this) );

you ça use edit.getText().toString() tout get the user input.

To launch new activity and pass the string to it use

Intent intent = new Intent(this, OtherActivity.class);
intent.putExtra("key", theString);
startActivity(intent);

EDIT

To be more easy you should add a button to your layout so when the user press that button you can launch the next activity with the string. This should go into your activity

public class BlankActivity implements OnClickListener {

     private EditText mEditText;

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

          //find editText
          mEditText = (EditText) findViewById(R.id.your_edit_text_id);
          //listen button
          findViewById(R.id.your_button_id).setOnClickListener(this);

     }

     @Override
     public void onClick(View v) {
          String theString = mEditText.getText().toString();
          Intent intent = new Intent(this, OtherActivity.class);
          intent.putExtra("key", theString);
          startActivity(intent);
     }


}

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM