Android Intents - Target类的默认值

时间:2016-03-01 15:39:17

标签: java android android-intent

我的目标类是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();




}

}

1 个答案:

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