我有片段的问题。
问题我面临的是简单的DialogFragment
public class Fragment3 extends DialogFragment {
private Fragment activity;
ViewGroup root;
static Fragment3 newInstance() {
Fragment3 f = new Fragment3();
return f;
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
root = (ViewGroup) inflater.inflate(R.layout.fragment3_layout, container, false);
return root;
}
}
我想从另一个片段创建这个片段
public class ListViewImageAdapter extends BaseAdapter {
private Fragment activity;
....
public ListViewImageAdapter(Fragment activity, ArrayList<Object> listImages) {
this.activity = activity;
...}
....
FragmentTransaction ft = activity.getFragmentManager().beginTransaction();
Fragment3 newFragment = Fragment3.newInstance();
newFragment.show( ft, "dialog");
....
但我收到一条消息:
The method show(FragmentManager, String) in the type DialogFragment is not applicable for the arguments (FragmentTransaction, String)
import android.support.v4.app.FragmentActivity;
而不是:
import android.app.DialogFragment;
(或反向)
尝试调用newFragment.show( activity.getFragmentManager(), "dialog");
而不是newFragment.show( ft, "dialog");
。DialogFragment.Show()方法将FragmentManager
作为第一个参数,而不是FragmentTransaction
。请看一下教程