AlertDialog 在片段中不起作用
AlertDialog not working in a Fragment
你好,我正在做一个应用程序,在该应用程序中按下一个按钮,一个带有 TimePicker 的 AlertDialog window 弹出。但是它在一个片段中,所以 AppCompatActivity 不会做。
片段本身:
public class time_change extends Fragment implements TimePickerFragment.TimeDialogListener {
private static final String DIALOG_TIME = "MainActivity.TimeDialog";
private View v;
private Button timePickerAlertDialog;
private ImageButton back;
@Override
@Nullable
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
v = inflater.inflate(R.layout.pamokos, container, false);
timePickerAlertDialog = (Button) v.findViewById(R.id.alert_dialog_time_picker);
timePickerAlertDialog.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
TimePickerFragment dialog = TimePickerFragment.newInstance();
dialog.show(getActivity().getFragmentManager(), "TimePickerFragment");
}
});
back = (ImageButton) v.findViewById(R.id.back_btn1);
back.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Pamokos fr = new Pamokos();
time_change fr2 = new time_change();
android.app.FragmentManager fragmentManager = getFragmentManager();
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
fragmentTransaction.replace(R.id.activity_frag, fr);
fragmentTransaction.remove(fr2);
fragmentTransaction.addToBackStack(null);
fragmentTransaction.commit();
}
});
return v;
}
@Override
public void onFinishDialog(String time) {
Toast.makeText(getActivity(), "Selected Time : " + time, Toast.LENGTH_SHORT).show();
}
}
但是在
显示错误
dialog.show(getActivity().getFragmentManager(), "TimePickerFragment");
说 "Cannot resolve method 'show(android.app.FragmentManager, java.lang.String)'"
我迷路了
添加
以下
在 DialogFragment 中导入 class
import android.support.v4.app.DialogFragment;
替换
dialog.show(getActivity().getFragmentManager(), "TimePickerFragment");
与
dialog.show(getSupportFragmentManager(), "TimePickerFragment");
替换
TimePickerFragment dialog = TimePickerFragment.newInstance();
dialog.show(getActivity().getFragmentManager(), "TimePickerFragment");
有了这个
FragmentManager fm = getActivity().getSupportFragmentManager();
TimePickerFragment dialog = new TimePickerFragment ();
dialog.show(fm, "TimePickerFragment");
你好,我正在做一个应用程序,在该应用程序中按下一个按钮,一个带有 TimePicker 的 AlertDialog window 弹出。但是它在一个片段中,所以 AppCompatActivity 不会做。
片段本身:
public class time_change extends Fragment implements TimePickerFragment.TimeDialogListener {
private static final String DIALOG_TIME = "MainActivity.TimeDialog";
private View v;
private Button timePickerAlertDialog;
private ImageButton back;
@Override
@Nullable
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
v = inflater.inflate(R.layout.pamokos, container, false);
timePickerAlertDialog = (Button) v.findViewById(R.id.alert_dialog_time_picker);
timePickerAlertDialog.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
TimePickerFragment dialog = TimePickerFragment.newInstance();
dialog.show(getActivity().getFragmentManager(), "TimePickerFragment");
}
});
back = (ImageButton) v.findViewById(R.id.back_btn1);
back.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Pamokos fr = new Pamokos();
time_change fr2 = new time_change();
android.app.FragmentManager fragmentManager = getFragmentManager();
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
fragmentTransaction.replace(R.id.activity_frag, fr);
fragmentTransaction.remove(fr2);
fragmentTransaction.addToBackStack(null);
fragmentTransaction.commit();
}
});
return v;
}
@Override
public void onFinishDialog(String time) {
Toast.makeText(getActivity(), "Selected Time : " + time, Toast.LENGTH_SHORT).show();
}
}
但是在
显示错误dialog.show(getActivity().getFragmentManager(), "TimePickerFragment");
说 "Cannot resolve method 'show(android.app.FragmentManager, java.lang.String)'"
我迷路了
添加 以下 在 DialogFragment 中导入 class
import android.support.v4.app.DialogFragment;
替换
dialog.show(getActivity().getFragmentManager(), "TimePickerFragment");
与
dialog.show(getSupportFragmentManager(), "TimePickerFragment");
替换
TimePickerFragment dialog = TimePickerFragment.newInstance();
dialog.show(getActivity().getFragmentManager(), "TimePickerFragment");
有了这个
FragmentManager fm = getActivity().getSupportFragmentManager();
TimePickerFragment dialog = new TimePickerFragment ();
dialog.show(fm, "TimePickerFragment");