我是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);
}
}
输出结果以图片形式附在后面第一个活动,点击按钮将进入第二个活动。
在第二个活动中,你正在创建一个 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);
}