我是Android的新用户我有一个片段类,当按钮点击操作转到下一个活动&有可能返回一些变量返回。
在片段类
中checkin.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent i = new Intent(getActivity(), CardAnimation.class);
getActivity().startActivityForResult(i,222);
}
});
我正在尝试onActivityResult& OnPermissionResult但它无法正常工作
在活动方面
printout.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
finishactivity(222);
}
});
答案 0 :(得分:1)
如果你打电话
getActivity().startActivityForResult(i,222);
结果将返回到您的活动。如果您想要返回片段,请删除 getActivity()部分。
使用此:
startActivityForResult(i,222);
您还需要setResult(RESULT_OK,intent)才能在活动中返回。
Intent resultIntent = new Intent();
resultIntent.putExtra("KEY", "DATA");
setResult(Activity.RESULT_OK, resultIntent);
答案 1 :(得分:1)
请尝试将finishactivity(222);
替换为setResult(RESULT_OK)
CardAnimation Activity中的代码应替换如下
printout.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
setResult(RESULT_OK);
finish();
}
});
您将首先收到活动文件中onActivityResult()方法的回调。如果您希望回拨到达您片段的OnActivityResult,则需要在活动中致电super.onActivityResult()
。
答案 2 :(得分:0)
尝试替换
cv2
与
finishactivity(222);
答案 3 :(得分:0)
试试这个:
Fragemt课程:
checkin.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent i = new Intent(getActivity(), CardAnimation.class);
startActivityForResult(i,222);
}
});
活动类:
printout.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent resultIntent = new Intent();
resultIntent.putExtra("YOUR_KEY", "Your data");
setResult(Activity.RESULT_OK, resultIntent);
finish();
}
});