Ich habe ein Fragment mit einem TextView drin. Beim Klicken auf den TextView möchte ich einen DatePicker in einem anderen Fragment aufrufen und das ausgewählte Datum sollte in der TextView im vorherigen Fragment angezeigt werden.ANDROID: Verwenden von DatePicker aus Fragment
Allerdings erhalte ich den folgenden Fehler.
Ich folgte dem untenstehenden Link als Referenz. Implementing DatePicker in Fragment
Dies ist mein Code für das Fragment, das eine TextView enthält.
import android.support.v4.app.DialogFragment;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
public class FlightFragment extends Fragment {
private TextView depDate;
public FlightFragment() {
// Required empty public constructor
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
depDate = (TextView) getView().findViewById(R.id.book_f_dep);
depDate.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
DialogFragment newFragment = new SelectDateFragment();
newFragment.show(getFragmentManager(), "DatePicker");
}
});
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
return inflater.inflate(R.layout.fragment_flight, container, false);
}
}
Dies ist das SelectDateFragment, das in FlightFragment verwendet wird.
import android.app.DatePickerDialog;
import android.app.Dialog;
import android.os.Bundle;
import android.support.v4.app.DialogFragment;
import android.widget.DatePicker;
import android.widget.TextView;
import java.util.Calendar;
public class SelectDateFragment extends DialogFragment implements
DatePickerDialog.OnDateSetListener {
public SelectDateFragment() {
// Required empty public constructor
}
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
final Calendar calendar = Calendar.getInstance();
int yy = calendar.get(Calendar.YEAR);
int mm = calendar.get(Calendar.MONTH);
int dd = calendar.get(Calendar.DAY_OF_MONTH);
return new DatePickerDialog(getActivity(), this, yy, mm, dd);
}
public void onDateSet(DatePicker view, int yy, int mm, int dd) {
populateSetDate(yy, mm+1, dd);
}
public void populateSetDate(int year, int month, int day) {
TextView t= (TextView)getView().findViewById(R.id.book_f_dep);
t.setText(month + "/" + day + "/" + year);
}
}
'R.id.book_f_dep' null tun. den Code für das Fragment, wo Sie die ID setzen –
Problem für TextView t = (TextView) getView(). findViewById (R.id.book_f_dep); ' –