我有一个问题是在Activity和FragmentActivity之间传递额外内容。
下一个代码创建Intent以启动新Activity:
Intent fichaSerie = new Intent(getActivity(),ActividadSerie.class);
NotificacionSerie serie = (NotificacionSerie) adaptador.getItem(position);
fichaSerie.putExtra("serie", serie.getID());
getActivity().startActivity(fichaSerie);
当我尝试在Fragment Activity中获取Extras时,我得到一个NullPointerException:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.serie);
String extra = getIntent().getExtras().getString("serie") //NullPointerException
}
任何人都知道我在我的代码中犯了哪些错误?
非常感谢大家。
答案 0 :(得分:3)
感谢所有帮助人员,我使用此电话解决了我的问题:
getIntent().getStringExtra("serie")
我将此问题标记为已解决。
再次感谢你们。
答案 1 :(得分:1)
首先,Java区分大小写,因此.getID()
与.getId()
不同。
如果您要获取对象的ID,请使用.getId()
。这通常会返回Integer
值
注意你正在增加的type
正如Michal所说(字符串或整数或其他任何东西)
Intent fichaSerie = new Intent(getApplicationContext(), ActividadSerie.class);
NotificacionSerie serie = (NotificacionSerie) adaptador.getItem(position);
fichaSerie.putExtra("serie", serie.getId()); //presuming this id is an Integer or long int ... You could change this to string if it is still usable then (serie.getId().toString())... but you have to get an intent with myIntent.getStringExtra(...), but I think you will not be doing this.
startActivityForResult(fichaSerie, 0);
从ActividadSerie.java获取额外费用
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.serie);
Intent myIntent = getIntent();
String extra = myIntent.getStringExtra("serie"); //try diferent gets... getIntExtra(), getStringExtra()..
}
答案 2 :(得分:0)
您设置了Integer
值并将其加入String
值,以便获得NullPointerException
。