2017-02-28 32 views
2

您好我是新來的Android和Java的方法檢索值,而我由於這一點,我要聲明的方法public void onDateSet(DatePicker view, int year, int month, int day),在我寫延伸DialogFragment並實現DatePickerDialog.OnDateSetListener日期選擇器片段類將我的新日期設置爲publicString變量。從聲明爲公共無效

是否有可能我可以在我的主要活動中使用此public String變量來顯示TextView中的值?如果是的話如何?

我的主要活動代碼:

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

DatePickerFragment代碼是:

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; 
    } 
} 

如果你可以用這個信息,我怎麼能得到「最新的指南「進入MainActivity出發?謝謝。

+0

我正在分享我的主要活動和片段類的代碼。請幫忙。 – rodaxyz

+0

你可以使用'OnDismissListener',應該檢查這個[回答](http://stackoverflow.com/a/23786151/5769824) – Hmm

+0

使用接口/回調 – Rahul

回答

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

是否可以用一個例子來解釋,我是新手機器人。 – rodaxyz

+0

我編輯了我的答案,現在看看 –

+0

你現在可以檢查我的代碼。謝謝 – rodaxyz

0

你可以試試下面的代碼裏面onDateSet()方法您的片段

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

,並在您TARForm活動讓public EditText departuredate;如果您活動片段在不同文件夾

+0

請看到代碼和幫助。謝謝 – rodaxyz

+0

更新了我的答案,請檢查 – ShekharKG

+0

謝謝它的工作。 – rodaxyz