我想将一个活动类中的位置值传递给另一个...
我的代码如下:
protected void onListItemClick(ListView listView, View v, int position,
long id) {
switch (position) {
case 1:
Intent newActivity1 = new Intent(this, BucketItemActivity.class);
newActivity1.putExtra("bucketno", position);
startActivity(newActivity1);
break;
case 2:
Intent newActivity2 = new Intent(this, BucketItemActivity.class);
newActivity2.putExtra("bucketno", position);
startActivity(newActivity2);
break;
}
}
将接收它的活动类..
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_bucket_item);
String value = getIntent().getExtras().getString("bucketno");
TextView textView = new TextView(this);
textView.setTextSize(40);
textView.setText(value);
setContentView(textView);
}
但我总是在String值中得到一个null ...
请帮忙。
答案 0 :(得分:19)
替换它,
String value = getIntent().getExtras().getString("bucketno");
带
int value = getIntent().getExtras().getInt("bucketno");
您正在尝试传递int值但检索字符串数据。这就是你得到nullpointerException的原因。
答案 1 :(得分:12)
您可以使用:
在第一项活动(MainActivity页面)
中Intent i = new Intent(MainActivity.this,SecondActivity.class);
i.putExtra("YourValueKey", yourData.getText().toString());
然后你可以通过以下方式从第二项活动中获得: 在第二个活动(SecondActivity页面)
Intent intent = getIntent();
String YourtransferredData = intent.getExtras().getString("YourValueKey");
答案 2 :(得分:4)
String value = Integer.toString(getIntent().getExtras().getInt("bucketno"));
答案 3 :(得分:1)
Bundle extras = getIntent().getExtras();
if (extras != null) {
String data = intent.getExtras().getString("key").toString();
}
答案 4 :(得分:0)
使用:
String value = getIntent().getExtras().get("key").toString();
getIntent().getExtras()
会给你一个Boundle。 get()
方法可用于获取值。
答案 5 :(得分:0)
此外谁有不同的情绪
ItemReader
如果你把其他原语如double,boolean,int只是不要忘记输入正确的格式,同时在secont Activity中设置值
double userDMH = Util.getInstance(TakeInfoOne.this).calculateBMH(userGender, kg, talll, currentAge, activityy);
Intent intentTogeneral = new Intent(TakeInfoOne.this, TakeInfoTwo.class);
intentTogeneral.putExtra("user_current_age",userDMH );
startActivity(intentTogeneral);
此处使用Bundle extras = getIntent().getExtras();
if (extras != null) {
double value = extras.getDouble("user_current_age");
txt_metabolism.setText(""+value);
}
键入您关注的值类型,如
extras.getDouble()
答案 6 :(得分:0)
在第一个活动中
Intent i=new Intent(getApplicationContext(),BookPractionerAppoinment.class);
i.putExtra("prac","test");
startActivity(i);
在“第二次ACT活动”中获取价值
String prac=getIntent().getStringExtra("prac);
对于序列化对象:
通过
Intent i=new Intent(getApplicationContext(),BookPractionerAppoinment.class);
i.putExtra("prac",pract);
startActivity(i);
获取
pract= (Payload) getIntent().getSerializableExtra("prac");