編譯我怎麼能顯示此:getSupportFragmentManager不上DialogFragment
public class TagsDialog extends DialogFragment
{
@Override
public Dialog onCreateDialog(Bundle savedInstanceState)
{
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
LayoutInflater inflater = getActivity().getLayoutInflater();
builder.setView(inflater.inflate(R.layout.tags_dialog, null));
builder.setMessage("This is a message").setTitle("TAGS");
return builder.create();
}
}
從裏面我Fragment
內ViewPager
:
public class MyFragment extends Fragment
{
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
{
...
ImageView btnTags = (ImageView)view.findViewById(R.id.btnTags);
btnTags.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View view)
{
DialogFragment dlg = new TagsDialog();
//this line doesn't compile
dlg.show(getSupportFragmentManager(), "tags");
}
});
}
}
我已經試過了好半天得到這個工作,但getSupportFragmentManager
永遠不會解決...任何想法?
編輯:
,我覺得這是所有造成的支持FragmentManager VS的android.app.FragmentManager,但是我不知道如何解決這個問題,因爲我使用ViewPager從支持庫...
getSupportFragmentManager /和所有相關的getFragManager方法(如父類和子方法)總是從支持庫返回管理器,而show方法需要核心方法。
進口商品有:
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
FragmentManager fm = getActivity().getSupportFragmentManager(); // returns from support lib
DialogFragment dlg = new TagsDialog();
dlg.show(fm, "tags"); // wants core...
如果我只是使用的核心,那麼getSupportFragmentManager()
上不存在getActivity()
...
你是什麼意思未解決?你有沒有任何堆棧跟蹤? – Snicolas
@Snicolas它不編譯。你知道紅色的sqiggly線。 – sprocket12
哈哈。哪裏?哪一行,突出顯示//罪魁禍首 – Snicolas