获取另一个活动的EditText数据 - android

时间:2015-05-22 01:12:34

标签: java android android-activity

我有一个登录字段,我想获取这些数据并在另一个Acitivity上放置textView,但这两个之间有一个Activity。

按照目前的情况: MainActivity

Intent i = new Intent(MainActivity.this, FirstPage.class);
                i.putExtra("username", loginField.getText().toString());

第三项活动:         TextView textConta =(TextView)findViewById(R.id.textConta);

    textConta.setText("*" + getIntent().getExtras().getString("username"));

并且textView为空。任何线索? 感谢

6 个答案:

答案 0 :(得分:1)

您需要将意图从第二Activity转到第三。

或者作为替代解决方案,您可以存储要在FileSharedPreferencesSQLiteDatabase或其他存储空间中的活动之间传递的数据。

答案 1 :(得分:0)

在您拥有登录字段的活动中:

SharedPreferences login = getSharedPreferences("LOGIN", 0);
 SharedPreferences.Editor editor = login.edit();
 editor.putString("user", loginField.getText().toString());
 editor.commit();

在您要显示的活动中:

 SharedPreferences login = getSharedPreferences("LOGIN", 0);
 String user = login.getString("user", "0");
textview.setText(user);

答案 2 :(得分:0)

您可以非常轻松地使用SharedPreferences。将字符串保存在第一个活动中:

SharedPreferences settings = getSharedPreferences("AppName", Context.MODE_PRIVATE);
SharedPreferences.Editor editor = settings.edit();
editor.putString("username", loginField.getText().toString());
editor.apply();

然后在任何活动中获取字符串:

SharedPreferences settings = getSharedPreferences("AppName", Context.MODE_PRIVATE);
settings.getString("username", "");

答案 3 :(得分:0)

您也可以在内容类中使用静态变量,如下所示:

public class User{
static string username = "xxxx";
}

您可以在任何您想要的活动中获取用户名。因为这只是一个变量,所以我不建议使用SharedPreferences。

另一种方法是使用“应用程序”

public class User extends application{
private String username= "xxxx";

public String getUsername() {
    return username;
}
}

在另一个活动中,您可以按照以下方法获取应用程序类:

User user = getApplication();
String username = user.getUsername();

android Clipboard是获取所需信息的第三种方式。

答案 4 :(得分:0)

一旦活动失去焦点,它所获得的所有值和活动本身都将丢失。因此我们必须将值带到第二个活动,然后再转到第三个活动。这是唯一的方法。我们可以使用它的意图,值可以存储在bundle中。

答案 5 :(得分:0)

创建一个简单的DataHolder类

public class DataHolder {
    public static String SOME_STRING;
}

在一项活动中,只需设置DataHolder.SOME_STRING = editText.getText().toString();

即可

在其他访问中

String abcd = DataHolder.SOME_STRING;

非常简单吧?