如何调用先前在另一个活动中输入的用户名

时间:2012-03-23 13:06:47

标签: android android-intent

我通过XML在一个活动中传递username的值。我想回忆一下下一个屏幕中的值,比如'Hello / Welcome'。如何使用GetExtra和PutExtra?

PLS。找到下面的代码,我已尝试过相同的代码。

用于在一个活动中存储用户名的值:

Intent myActivity2 = new Intent(this,Activity1.class);
myActivity2.putExtra("nickname", R.id.mynickname3);
startActivity(myActivity2);         

用于回忆其他活动中的值:

Bundle extras = getIntent().getExtras(); 
String val = extras.getString("nickname");
TextView tv=new TextView(this);
tv.setText(val);

4 个答案:

答案 0 :(得分:2)

如果要重复使用用户名,请使用sharedPreference。

将userName传递给另一个活动然后使用它不是一个好主意。像userName这样的字段可能需要反复使用。

答案 1 :(得分:0)

你几乎是对的。

仅传递EditText的id是不够的。您必须使用以下代码 -

((EditText)findViewById(R.id.mynickname3)).getText().toString();

int putExtra。其他一切都应该没问题。

更新:不要忘记通过以下方式将TextView设置为OnCreate中的contentView:

setContentView(..)

答案 2 :(得分:0)

在第一个活动中,您传入一个整数值( R.id.mynickname3 )。相反,你需要给它一个字符串。请改用:

myActivity2.putExtra("nickname", getString(R.id.mynickname3));

作为旁注,你试图不必要地获得一个Bundle。试试这个:

String val = getIntent().getStringExtra("nickname");
TextView tv = new TextView(this);
if (val != null)
{
    tv.setText(val);
}

答案 3 :(得分:0)

你的代码中只是一个愚蠢的错误:

myActivity2.putExtra("nickname", R.id.mynickname3);

如果你有EditText(昵称)的书面ID,那么它应该是:

 txtNickName = (EditText) findViewById (R.id.mynickname3);
 myActivity2.putExtra("nickname", txtNickName.getText().toString());