2017-04-07 87 views
0

你好我正在做一个应用程序,其中按下了一个按钮,AlertDialog窗口弹出一个TimePicker。但它在一个片段,所以AppCompatActivity不会这样做。AlertDialog不工作在片段

片段本身:

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"); 

一个错误说 “无法解析法 '秀(android.app.FragmentManager,java.lang.String中)'”

完整代码来自本教程https://www.androidtutorialpoint.com/basics/android-alert-dialog-tutorial-working-time-picker-date-picker-list-dialogs/

我很迷茫。

回答

1

下面 进口增加 您DialogFragment类中

import android.support.v4.app.DialogFragment; 

更换

dialog.show(getActivity().getFragmentManager(), "TimePickerFragment"); 

dialog.show(getSupportFragmentManager(), "TimePickerFragment"); 
+0

我已经更换了,但现在只有getSupportFragmentManager()变为全红的,而不是红色的下划线,也提示“无法解析法‘getSupportFragmentManager()’” – Sajev

+0

取代android.app.DialogFragment与导入android.support.v4.app.DialogFragment; –

+0

是的,我已经取代了进口,但同样的错误 – Sajev

2

更换

TimePickerFragment dialog = TimePickerFragment.newInstance(); 
dialog.show(getActivity().getFragmentManager(), "TimePickerFragment"); 

与此

FragmentManager fm = getActivity().getSupportFragmentManager(); 
TimePickerFragment dialog = new TimePickerFragment(); 
dialog.show(fm, "TimePickerFragment");