[英]how to call method of one fragment from another fragment class in android
我想從fragmentA調用FragmentB(Class)的方法,我嘗試通過在fragmentA(class)中創建fragmentb的對象來嘗試,但是在這里它不起作用是該類中fragmentA的代碼,我有一個方法可以通過它調用FragmentB類的方法
adddata.setOnClickListener(
new View.OnClickListener() {
@Override
public void onClick(View v) {
boolean isInserted = myDb.addalldata(monthly_income.getText().toString(),
room_rent.getText().toString(),
mess_rent.getText().toString());
if (isInserted = true)
Toast.makeText(getActivity().getBaseContext(), "Data Inserted", Toast.LENGTH_LONG).show();
else
Toast.makeText(getActivity().getBaseContext(), "Data not Inserted", Toast.LENGTH_LONG).show();
}
}
);
我想稱這個為fragmentB的方法
public void show() {
Cursor res = myDb.getAllData();
StringBuffer buffer = new StringBuffer();
while (res.moveToNext()) {
displayresult.setText( buffer.append( res.getString(1)));
}
}
我嘗試通過fragmentA方法編寫此代碼,但出現錯誤
FragmentA fragment=
(FragmentA)getSupportFragmentManager().findFragmentById(R.id.pageview2);
((FragmentA)fragment).show();
試試這個解決方案:
((FragmentA) getActivity()
.getSupportFragmentManager()
.findFragmentById(R.id.pageview2)
).show();
您可以像這樣創建靜態變量
static FragmentB f;
public static FragmentB newInstance(String title) {
FragmentB f = new FragmentB();
Bundle b = new Bundle();
b.putString(ARG_STATION_TITLE, title);
f.setArguments(b);
return f;
}
您可以使用getInstance()方法獲取fragmentB的實例
public static FragmentB getInstance(){
return f;
}
這樣調用FragmentB.getInstance().methodinFragmentB();
在FragmentA類中,您可以執行以下代碼:-
private static FragmentA instance = null;
@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
instance = this;
}
public static FragmentA getInstance() {
return instance;
}
在FragmentB類中,您可以按以下方式調用方法:
FragmentA.getInstance().show();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.