2017-10-14 69 views
0

我正在嘗試向我的活動添加一個片段,並調用活動中片段類中的方法。 我在沒有調用活動類中的方法的情況下測試了片段,並且該片段在活動中顯示時沒有任何問題。但是我無法調用片段類中的方法。使用Activity類調用片段類中的方法

下面是我在activity類中的代碼。

使用下面的方法,當點擊一個按鈕時,我調用要顯示在我的活動中的片段。

public void checkTimes(View view){ 
    FragmentManager fragmentManager = getFragmentManager(); 
    FragmentTransaction fragmentTransaction = 
    fragmentManager.beginTransaction(); 
    table_fragment tablefragment = new table_fragment(); 
    fragmentTransaction.add(R.id.fragmentContainer, tablefragment); 
    fragmentTransaction.commit(); 
} 

下面是片段類和填充數據方法的代碼是我想要調用的方法。

public class table_fragment extends Fragment { 

View view; 
@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, 
         Bundle savedInstanceState) { 
// Inflate the layout for this fragment 
    view = inflater.inflate(R.layout.table_fragment, container, false); 
    return view; 
} 

/** 
* Method used to populate dates in the fragment 
* @param startDate 
* @param endDate 
*/ 
public void populateData(Context context,LocalDate startDate, LocalDate endDate){ 
    ArrayList<LocalDate> dates = Utility.calculateDates(startDate,endDate); 
    TableLayout table = (TableLayout) view.findViewById(R.id.dateTable); //getting the table layout in the fragment 
    for(LocalDate date : dates){ 
     TableRow tableRow=new TableRow(context); 
     tableRow.setLayoutParams(new TableLayout.LayoutParams(TableLayout.LayoutParams.MATCH_PARENT, TableLayout.LayoutParams.WRAP_CONTENT)); 
     TextView tv=new TextView(context); 
     tv.setText(date.toString()); 
     tableRow.addView(tv); 

     table.addView(tableRow); 
    } 
} 
} 

我想從活動類中調用填充日期方法並顯示片段。

我該如何做到這一點?

謝謝。

回答

0

使下面的一個方法,然後使用tablefragment調用你的方法。 並從活動中調用此方法。 並使用xml文件添加您的片段。

public void setDataAccordingToYourNeed(){ 
     table_fragment tablefragment=getFragmentManager().findFragmentById(your_fragment_id); 
     tablefragment.yourFragmentMethod(); 
    } 

這必將解決您的問題,如果你沒有得到讓我知道

相關問題