list.setOnItemClickListener(new ListView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> a, View v, int position, long l) { try { String[] datos = datalist[position]; Bundle b = new Bundle(); Intent i = new Intent(getActivity(), Descripcion_programa.class); b.putStringArray("datos", datos); i.putExtras(b); startActivity(i); } catch(Exception e) { e.printStackTrace(); } } });
版主你好我现在的代码是这个样的 在fragment里 context = getActivity().getApplicationContext();Intent intent = new Intent(context,详情页.class);这样是利用父activity吗?这样是接收不到的
版主你好我现在的代码是这个样的 在fragment里 context = getActivity().getApplicationContext();Intent intent = new Intent(context,详情页.class);这样是利用父activity吗?这样是接收不到的你贴下详细代码吧,intent.put啥了
版主你好我现在的代码是这个样的 在fragment里 context = getActivity().getApplicationContext();Intent intent = new Intent(context,详情页.class);这样是利用父activity吗?这样是接收不到的你贴下详细代码吧,intent.put啥了就传个id
fragment面页:
context = getActivity().getApplicationContext();
Intent intent = new Intent(context,详情页.class);
intent.putExtra("rid", rid);
startActivity(intent);详情页:
Intent intent = getIntent();
// 得到基本信息
int _rid = intent.getIntExtra("_rid", 0);我以前用两个activity 就是这样传的 可以接收到 现在 估计是fragment 不能传给 另外的activity吧
总结一下Fragment与Activity之间交换数据的方式:
* 1 Activity向Fragment传递数据
fragment.setArguments(bundle) * 2 Fragment向Activity传递数据
在Fragment内部定义一个回调接口.让包含该Fragment的
Activity实现该接口.这样Fragment就可调用该回调方法
将数据传给Activity
@Override
public void onItemClick(AdapterView<?> a, View v, int position, long l) {
try {
String[] datos = datalist[position];
Bundle b = new Bundle();
Intent i = new Intent(getActivity(), Descripcion_programa.class);
b.putStringArray("datos", datos);
i.putExtras(b);
startActivity(i);
}
catch(Exception e) {
e.printStackTrace();
}
}
});