我对Android完全陌生,如果这是一个愚蠢的问题,请道歉。但我的问题是:
我为我的应用程序中的每个页面创建了许多类,我想从另一个类的edittext字段中的文本更新特定类的textview中的文本。
更具体地说,我有一个登录页面,我希望将用户名(由用户在edittext框中输入)传输到登录页面中的文本字段。目前,我正在尝试通过在登录页面中使用登录按钮进行单击侦听来实现此目的:
public void sign_in_click(View view) {
EditText tv1 = (EditText) findViewById(R.id.txt_input_uname);
String username=tv1.getText().toString();
LoginDetails unamede=new LoginDetails();
unamede.setuname(username);
Intent myIntent = new Intent(view.getContext(), customer.class);
startActivityForResult(myIntent, 0);
}
因此,click侦听器初始化了一个我在另一个类中定义的新类变量,如下所示:
public class LoginDetails {
public String uname;
public void setuname(String username){
uname=username;
}
public String getuname(){
return uname;
}
}
并且它在登录页面的edittext框中为uname提供了用户名。
然后我在oncreate下的登录页面中:
LoginDetails unamed= LoginDetails();
String username=unamed.getuname();
tv1.setText(username);
但是textview框中的文本没有写入任何内容。现在我不会感到惊讶,如果我这样做完全错了,但任何建议都会非常感激。感谢
答案 0 :(得分:1)
我建议将用户的登录信息放入SharedPreference中。将日期转移到另一个活动。
例如......
SharedPreferences myPrefs = getSharedPreferences("USER_INFO", 0);
myPrefsEdit.putString("USER_ID", username=tv1.getText().toString(););
//This is the username you get from edittext
myPrefsEdit.putString("PASSWORD", password);
//this is the user password you get from edittext
myPrefsEdit.commit();
在你的下一个活动中。
获取对您的SharePreference的引用,例如......
SharedPreferences info = getSharedPreferences("USER_INFO, 0);
String username = info.getString("USER_ID", "DOESNT EXIST");
String userpassword = info.getString("PASSWORD", "DOESNT EXIST");
这应该这样做
答案 1 :(得分:0)
您可以尝试将用户名添加到活动意图中(当您不想立即将其保留在共享首选项中时):
Intent myIntent = new Intent(view.getContext(), customer.class);
myIntent.putExtra("uname", username);
startActivityForResult(myIntent, 0);
然后在onCreate:
tv1.setText(getIntent().getStringExtra("uname"));