2017-04-07 96 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");