我在第一个活动中有两个活动我将字符串值存储在变量中我正在使用intent并转到第二个活动我想获取存储在变量中的值并将其传递给edittext 任何人都可以帮助我
第一项活动--- onclick with intent
but1.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Intent mail = new Intent(
"com.ideals.ideal.MAIL1");
mail.putExtra("Value1", "problem was asked in stackowerflow and i am waiting for a reply");
startActivity(mail);
}
});
第二项活动
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.mail1);
sendEmail = (Button) findViewById(R.id.bSentEmail);
doc = (EditText) findViewById(R.id.etdoc);
Bundle extras = getIntent().getExtras();
value1 = extras.getString("value1");
doc.setText(value1);
abcPref = getSharedPreferences(FILE1, 0);
Bigboss = abcPref.getString("bigboss", "");
答案 0 :(得分:1)
按如下方式更新您的onClick
代码(创建意图的方式不是最佳方式):
but1.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Intent mail = new Intent(this, MAIL1.class);
mail.putExtra("Value1", "problem was asked in stackowerflow and i am waiting for a reply");
startActivity(mail);
}
});
您应该使用在putExtra
中使用的相同密钥:
String value1 = extras.getString("Value1");
doc.setText(value1);
答案 1 :(得分:1)
您的意图密钥值区分大小写,因此请务必确保在获取值时,您定义的用于传递意图值的密钥必须相同。
在获得价值时,您的密钥为Value1
而不是value1
。写V
首都而非v
。
Bundle extras = getIntent().getExtras();
value1 = extras.getString("Value1");
答案 2 :(得分:0)
Intent Extras是键值对。给一把钥匙,你得到相应的价值。看看以下Eg:
第一个活动中的:
Intent mail = new Intent(FirstActivity.this, SecondActivity.class);// This is the right way to call Activity inside your own Application
mail.putExtra("Key1", "Value1");
mail.putExtra("Key2", "Value2");
mail.putExtra("Key3", "Value3");
startActivity(mail);
现在,在SecondActivity中,
String value1 =getIntent().getStringExtra("Key1");
String value2 =getIntent().getStringExtra("Key2");
String value3 =getIntent().getStringExtra("Key3");