我想在Click按钮事件时转到Fragment。但我有相关问题。
这是我的代码。
@OnClick(R.id.Main_Bottom_Bar_Summary)
public void onBottomBarClicked()
{
loadFragment(new AddItemFragment());
}
private void loadFragment(android.support.v4.app.Fragment fragment) {
FragmentManager fm = getFragmentManager();
FragmentTransaction fragmentTransaction = fm.beginTransaction();
fragmentTransaction.replace(R.id.frameLayout, fragment);
fragmentTransaction.commit(); // save the changes
}
和活跃的顶部。导入文件。
import android.app.Fragment;
import android.app.FragmentManager;
import android.app.FragmentTransaction;
和我的碎片:
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import com.and.dmt.R;
public class AddItemFragment extends Fragment
{
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
return inflater.inflate(R.layout.fragment_additemdialog,container, false);}
}
我可以看到这个问题。
这个问题是什么?我该如何解决?
如果我更改loadFragment参数" Fragment" to" android.support.v4.app.Fragment"
然后出现此问题。
答案 0 :(得分:2)
loadFragment()
以android.app.Fragment
为参数,而您的片段扩展android.support.v4.app.Fragment
。
更改loadFragment()
的参数以采用v4片段并使用getSupportFragmentManager()
。
答案 1 :(得分:1)
如果您使用支持片段,请尝试以下代码:
private void loadFragment(android.support.v4.app.Fragment fragment) {
android.support.v4.app.FragmentTransaction fragmentTransaction = getSupportFragmentManager().beginTransaction();
fragmentTransaction.replace(R.id.frameLayout, fragment);
fragmentTransaction.commit(); // save the changes
}
答案 2 :(得分:0)
将以下代码添加到调用Activity。
addFragment(R.id.fragment_container, NewFragment.newInstance());
并在片段类中添加以下方法,该方法将返回该片段的新实例。
public static NewFragment newInstance() {
return new NewFragment();
}