如何从android中的另一个片段类调用一个片段的方法

我想从fragmentA中调用FragmentB(Class)的方法,我在fragmentA(类)中创建了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(); 

您可以像这样创建静态varibales

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