Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/339.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 开始搜索结果的片段_Java_Android_Android Fragments_Android Dialogfragment_Bottom Sheet - Fatal编程技术网

Java 开始搜索结果的片段

Java 开始搜索结果的片段,java,android,android-fragments,android-dialogfragment,bottom-sheet,Java,Android,Android Fragments,Android Dialogfragment,Bottom Sheet,我想从BottomSheetFragment得到结果。我试图通过getActivity().setResult(Activity.RESULT\u OK,null)来实现这一点内部 @Override public void onDismiss(DialogInterface dialog) { getActivity().setResult(Activity.RESULT_OK, null); super.onDismiss(dialog); } 但未调用Activi

我想从BottomSheetFragment得到结果。我试图通过
getActivity().setResult(Activity.RESULT\u OK,null)来实现这一点内部

    @Override
public void onDismiss(DialogInterface dialog) {
    getActivity().setResult(Activity.RESULT_OK, null);
    super.onDismiss(dialog);
}
但未调用ActivityResult上的activity方法。我做错了什么

    @Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
    Toast.makeText(this, requestCode, Toast.LENGTH_SHORT).show();
    super.onActivityResult(requestCode, resultCode, data);
}
对话框启动方法

BottomSheetDialogFragment bottomSheetFragment = new BottomSheetDialogFragment();
            Bundle bundle = new Bundle();
            bottomSheetFragment.setArguments(bundle);
            bottomSheetFragment.show(getSupportFragmentManager(), bottomSheetFragment.getTag());
onActivityResult()
用于从其他活动获取结果

有关这方面的更多信息:

如果您想将一些数据从片段发送到活动,可以通过定义接口或通过将其强制转换到特定活动来调用活动中的方法来实现

class MainActivity extends AppCompatActivity {

 @Override
 protected void onCreate(@Nullable Bundle savedInstanceState) {
  YourBottomSheetDialogFragment bottomSheetFragment = new YourBottomSheetDialogFragment();
  Bundle bundle = new Bundle();
  bottomSheetFragment.setArguments(bundle);
  bottomSheetFragment.show(getSupportFragmentManager(), bottomSheetFragment.getTag());
 }

 public void setResultFromFragment(String data) {
  ...
 }
}

/**
* Calling Activity's method from Fragment
*/
class YourBottomSheetDialogFragment extends BottomSheetDialogFragment {

 @Override
 public void onCreate(@Nullable Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  ((MainActivity) getActivity()).setResultFromFragment("");
 }
}
onActivityResult()
用于从其他活动获取结果

有关这方面的更多信息:

如果您想将一些数据从片段发送到活动,可以通过定义接口或通过将其强制转换到特定活动来调用活动中的方法来实现

class MainActivity extends AppCompatActivity {

 @Override
 protected void onCreate(@Nullable Bundle savedInstanceState) {
  YourBottomSheetDialogFragment bottomSheetFragment = new YourBottomSheetDialogFragment();
  Bundle bundle = new Bundle();
  bottomSheetFragment.setArguments(bundle);
  bottomSheetFragment.show(getSupportFragmentManager(), bottomSheetFragment.getTag());
 }

 public void setResultFromFragment(String data) {
  ...
 }
}

/**
* Calling Activity's method from Fragment
*/
class YourBottomSheetDialogFragment extends BottomSheetDialogFragment {

 @Override
 public void onCreate(@Nullable Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  ((MainActivity) getActivity()).setResultFromFragment("");
 }
}

我决定按照DEVV911的建议实现接口

并在onDismiss中调用onFinished方法

    @Override
public void onDismiss(DialogInterface dialog) {
    super.onDismiss(dialog);
    onFinishedListener.onFinished(acceptList, rejectList);
}

我决定按照DEVV911的建议实现接口

并在onDismiss中调用onFinished方法

    @Override
public void onDismiss(DialogInterface dialog) {
    super.onDismiss(dialog);
    onFinishedListener.onFinished(acceptList, rejectList);
}

尝试调用
getActivity().setResult(Activity.RESULT\u OK,null)
super.onDismiss(对话框)之后并在
super.onActivityResult(请求代码、结果代码、数据)之后显示
Toast
@DineshShingadiya没有帮助(尝试调用
getActivity().setResult(Activity.RESULT_OK,null);
super.onDismiss(dialog);
super.onActivityResult(requestCode,resultCode,data);
@DineshShingadiya没有帮助(