该方法显示(FragmentManager,string)在类型对话框中不适用于参数(fragmentTransacti



我有片段的问题。

问题我面临的是简单的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。请看一下教程

最新更新