我的目标类是PlanetInfoActivity,但我总是收到默认值。我在这里看到了一些经历同样问题的人的例子,但通常是他们构建新意图或接收无效类型。
public static class PlanetHolder extends RecyclerView.ViewHolder implements View.OnClickListener{
@Override
public void onClick(View v){
Intent intent = new Intent(context, PlanetInfoActivity.class);
int i = mPlanet.getPlanetNumber(); <-- returns int
intent.putExtra(PLANET_NUMBER, i);
context.startActivity(intent);
}
}
PlanetInfoActivty
@Override
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.planet_info_ui);
Intent intData = getIntent();
int planNum3 = intData.getIntExtra("PLANET_NUMBER", 101);
Toast.makeText(this, Integer.toString(planNum3), Toast.LENGTH_SHORT).show();
}
}
答案 0 :(得分:0)
你总是得到默认值,因为你用不同的键来设置int而不是你得到它。当你把int放在额外的东西中时,你使用(可能是public static final
)变量PLANET_NUMBER
,而你正在使用文本"PLANET_NUMBER"
从额外的东西中获取int。这些值不匹配。要获得PlanetInfoActivity
中的int,必须使用相同的密钥。为此,请更改此行
int planNum3 = intData.getIntExtra("PLANET_NUMBER", 101);
进入这个
int planNum3 = intData.getIntExtra(PlanetHolder.PLANET_NUMBER, 101);