2017-04-08 77 views
0

我嘗試通過已在我的活動宣告一個對話框,修改日期在我Fragment,但我無法從我的活動集的TextView從片段從活動

編輯TextView這部分是我的活動

聲明
protected Dialog onCreateDialog(int id) { 
    // TODO Auto-generated method stub 
    if (id == 999) { 
     return new DatePickerDialog(this, 
       myDateListener, year, month, day); 
    } 
private DatePickerDialog.OnDateSetListener myDateListener = new 
     DatePickerDialog.OnDateSetListener() { 
      @Override 
      public void onDateSet(DatePicker arg0, 
            int arg1, int arg2, int arg3) { 
       // TODO Auto-generated method stub 
       // arg1 = year 
       // arg2 = month 
       // arg3 = day 
       showDate(arg1, arg2+1, arg3); 
      } 
     }; 

private void showDate(int year, int month, int day) { 

    abbes = new StringBuilder().append(day).append("/") 
      .append(month).append("/").append(year); 
    android.support.v4.app.Fragment fragment = null; 
    fragment = new Fragment7(); 
    Bundle bundle =new Bundle(); 
    bundle.putString("Radio", String.valueOf(abbes)); 
    fragment.setArguments(bundle); 
    Toast.makeText(this, ""+abbes, Toast.LENGTH_LONG).show(); 


} 

我有Toast檢查,當我通過我的活動對話框它改變更改日期,所以我試圖將字符串發送到我的Fragment只發送什麼,我不明白爲什麼!

在我Fragment

if (getArguments() != null) { 
     abbes1 = this.getArguments().getString("Radio"); 
     name.setText(abbes1); 
    } 

回答

0

您需要從您的片段將數據發送到您的容器活動。你可以簡單地使用一個接口來做到這一點。您需要將數據傳遞給接口方法。在你的活動中實現該接口,重寫它的方法,並且你將在活動中獲得你的數據。這是最模塊化的方法,它也避免了內存泄漏。作爲參考,你可以看看這個link。否則,您可以直接從您的片段中調用容器Activity的方法,並將其中的數據值傳遞給它。就像這樣:((YourContainerActivity)getActivity()).yourMethodInActivity(yourParams);

根據活動sendind數據片段:

Bundle bundle = new Bundle(); 
    bundle.putString("edttext", "From Activity"); 
    // set Fragmentclass Arguments 
    Fragmentclass fragobj = new Fragmentclass(); 
    fragobj.setArguments(bundle); 
FragmentManager fragmentManager = getSupportFragmentManager(); 
     FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction(); 
fragmentTransaction.replace(R.id.container_layout,fragobj,"FragmentClass"); 
fragmentTransaction.commit(); 

在你的片段,您可以使用getArguments()來獲得束。

+0

我想從我的活動發送數據到我的片段! –

+0

查看我的更新回答 –

+0

這就是我所做的,並且它不起作用 –