13

我想将一个活动类中的位置值传递给另一个......

我的代码如下:

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

但我总是在字符串值中得到一个空值......

请帮忙。

4

7 回答 7

22

换这个,

String value = getIntent().getExtras().getString("bucketno");

int value = getIntent().getExtras().getInt("bucketno");

您正在尝试传递 int 值但检索字符串数据。这就是为什么您会收到 nullpointerException。

于 2012-12-24T06:14:11.190 回答
14

您可以使用 :

在第一个活动中(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");
于 2012-12-24T06:14:43.890 回答
4
String value = Integer.toString(getIntent().getExtras().getInt("bucketno"));
于 2012-12-24T06:16:18.843 回答
2
Bundle extras = getIntent().getExtras();

if (extras != null) { 
    String data = intent.getExtras().getString("key").toString();
}
于 2015-03-13T06:41:42.960 回答
1

从第一个活动

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");
于 2020-05-10T03:36:12.617 回答
0

采用:

String value = getIntent().getExtras().get("key").toString();

getIntent().getExtras()会给你Boundle。get()方法可用于获取值。

于 2013-11-09T16:22:33.903 回答
0

另外谁有不同的情况

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

如果您放置其他原语,例如 double 、 boolean 、 int ,请不要忘记在第二个活动中获取值时输入正确的格式

Bundle extras = getIntent().getExtras();
    if (extras != null) {
        double value =  extras.getDouble("user_current_age");
        txt_metabolism.setText(""+value);
    }

在这里 extras.getDouble()输入您关注的值类型,例如

extras.getInt("user_current_age");
extras.getBoolean("user_current_age");
 extras.getString("user_current_age");
于 2017-09-14T14:23:30.253 回答