2017-02-28 1 views
2

Salut je suis nouveau à Android et Java, et je vous écris une date Allez classe Fragment qui étend DialogFragment et met en œuvre DatePickerDialog.OnDateSetListener en raison de cela, je dois déclarer méthode public void onDateSet(DatePicker view, int year, int month, int day), dans laquelle je suis définir ma nouvelle date dans une variable publicString.Extrayez la valeur d'une méthode déclarée comme public void

Est-il possible que je peux utiliser cette variable public String dans mon activité principale pour montrer la valeur dans un TextView? Si oui Comment?

Mon principal Code d'activité est:

public class TARForm extends AppCompatActivity implements CompoundButton.OnCheckedChangeListener { 

    EditText departuredate; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_tarform); 
     departuredate = (EditText) findViewById(R.id.departure_date); 
    } 

    public void showDatePickerDialog(View v) { 
     DialogFragment newFragment = new DatePickerFragment(); 
     newFragment.show(getFragmentManager(), "datePicker"); 
    } 
} 

EtDatePickerFragmentcode est:

public class DatePickerFragment extends DialogFragment implements DatePickerDialog.OnDateSetListener{ 

    int selectyear, selectmonth, selectday; 
    public String date; 

    @Override 
    public Dialog onCreateDialog(Bundle savedInstanceState) { 
     // Use the current date as the default date in the picker 
     final Calendar c = Calendar.getInstance(); 
     int year = c.get(Calendar.YEAR); 
     int month = c.get(Calendar.MONTH); 
     int day = c.get(Calendar.DAY_OF_MONTH); 
     return new DatePickerDialog(getActivity(), this, year, month, day); 
    } 

    public void onDateSet(DatePicker view, int year, int month, int day) { 

     selectday = day; 
     selectmonth = month+1; 
     selectyear = year; 
     date = selectday + "-" + selectmonth + "-" + selectyear; 
    } 
} 

Si vous pouvez guider ces informations, comment je peux obtenir la « date "dans MainActivity départ? Merci.

+0

Je partage le code pour mon activité principale et classe de fragment. S'il vous plaît aider. – rodaxyz

+0

Vous pouvez utiliser 'OnDismissListener', devrait vérifier ce [réponse] (http://stackoverflow.com/a/23786151/5769824) – Hmm

+0

Utiliser l'interface/rappels – Rahul

Répondre

0
//In your actiivty 
String date=null; 

public void setDate(String date){ 
    this.date=date; 
    //set this date in your text View 
} 


    //In your fragment 

Context context; 
@Override 
public void onAttach(Context context){ 
    this.context=context; 
} 

public void onDateSet(DatePicker view, int year, int month, int day){ 
    String date=//get Date over here 
    ((TARForm)context).setDate(date) 
} 
+0

Est-il possible pour vous d'expliquer avec un exemple, je suis nouveau à Android. – rodaxyz

+0

J'ai édité ma réponse ,, regarder dans maintenant –

+0

Vous pouvez vérifier mon code maintenant. Merci – rodaxyz

0

Vous pouvez ci-dessous le code dans votre fragment à l'intérieur onDateSet() méthode

public void onDateSet(DatePicker view, int year, int month, int day) { 

     selectday = day; 
     selectmonth = month+1; 
     selectyear = year; 
     date = selectday + "-" + selectmonth + "-" + selectyear; 

     if(getActivity() instanceOf TARForm){ 
      ((TARForm)getActivity()).departuredate.setText(date); 
     } 
    } 

et dans votre TARForm activité faire public EditText departuredate; si votre Activité et Fragment sont dans différents dossiers

+0

S'il vous plaît voir le code et aider. Merci – rodaxyz

+0

Mis à jour ma réponse, s'il vous plaît vérifier – ShekharKG

+0

Merci Cela a fonctionné. – rodaxyz