簡體   English   中英

在另一個活動上獲取EditText數據-android

[英]get EditText data on another activity - android

我有一個登錄字段,我想獲取此數據並放在另一個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為空。 有什么線索嗎? 謝謝

您需要將您的意圖從第二Activity傳遞到第三。

或者作為替代解決方案,您可以將要在活動之間傳遞的數據存儲在FileSharedPreferencesSQLiteDatabase或其他存儲中。

在您具有登錄名的活動字段中:

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

您可以非常輕松地使用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", "");

您還可以在內容類中使用static變量,如下所示:

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是獲取所需消息的第三種方式。

一旦該活動失去焦點,它所獲得的所有值以及該活動本身都將丟失,因此我們必須將這些值帶入第二個活動然后再移至第三個活動。這是唯一的方法。我們可以使用它的意圖和值可以存儲在包中。

創建一個簡單的DataHolder類

public class DataHolder {
    public static String SOME_STRING;
}

在一個活動中,只需設置DataHolder.SOME_STRING = editText.getText().toString();

在其他訪問中

String abcd = DataHolder.SOME_STRING;

比較簡單吧?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM