getFloatExtra()总是返回默认值。

问题描述 投票:0回答:1

我是Android开发的新手。我试图将一个活动的评分信息传递给另一个活动。但是第二个活动似乎并没有收到我通过getFloatExtra传递的值,而是采用了默认值。请帮我找出我做错了什么。

这是我的第一个活动。

public class FirstActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_first);
    }

    public void enter(View view) {
        RatingBar vRatingBar = (RatingBar) findViewById(R.id.ratingBar);
        float rate = vRatingBar.getRating();

        Intent goToSecond = new Intent();
        goToSecond.setClass(getApplicationContext(),SecondActivity.class);
        goToSecond.putExtra("stars",rate);
        startActivity(goToSecond);
    }
}

这是我的第二个活动

public class SecondActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_second);
        Intent caller = new Intent();
        Float rating = caller.getFloatExtra("stars",0.0f);
        TextView vTextView = (TextView) findViewById(R.id.textViewSecondActivity);
        vTextView.setText("Welcome to The Second Activity. Your Rating:" + rating);
    }
}

输出结果以图片形式附在后面第一个活动,点击按钮将进入第二个活动。

第二项活动

android android-layout android-activity
1个回答
1
投票

在第二个活动中,你正在创建一个 new Intent()

替换。

Intent caller = new Intent();

替换:

Intent caller = getIntent();

    Bundle bundle = caller.getExtras();
    if(bundle!=null){
    float rating= bundle.getFloat("stars",0.0f);
    //continue...
   TextView vTextView = (TextView) findViewById(R.id.textViewSecondActivity);
        vTextView.setText("Welcome to The Second Activity. Your Rating:" + rating);
    }
© www.soinside.com 2019 - 2024. All rights reserved.