所以我确信有一个简单的解释为什么这不起作用,但我不知道它是什么。我已经尝试了所有明显的事情。看过几个演示并调整我的代码以适应它们。我根本无法让这个ListFragement显示出来。有人能说出我做错了吗?或者我需要提供更多细节吗?
这是我的片段:
public class BlankFragment extends ListFragment {
private static final String[] items = {
"one", "two", "three", "four", "five"
};
@Override
public void onViewCreated(View view, Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
setListAdapter(new ArrayAdapter<String>(getActivity(),
android.R.layout.simple_list_item_1,
items));
}
}
这是我的活动:
public class MainActivity extends ActionBarActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (getFragmentManager().findFragmentById(android.R.id.content) == null) {
getFragmentManager().beginTransaction().replace(
android.R.id.content, new BlankFragment()).commit();
}
}
}
从我正在阅读的内容来看,这个简单应该有效。但事实并非如此。一切都编译并运行,但活动只是空白。请帮忙!
答案 0 :(得分:0)
Fragment
与Fragment
混合(欢迎使用Android):你的ActionBarActivity
来了,正如您可能从支持库中知道的那样,您使用的v7和片段来自普通的lib,发生的事情是您使用了&#34; false&#34; FragmentManager
:您拨打的是getFragmentManager
而不是getSupportFragmentManager
,但编译时非常惊人(当时要理解的内容要多得多。无论如何,此代码有效:
import android.os.Bundle;
import android.support.v4.app.FragmentTransaction;
import android.support.v4.app.ListFragment;
import android.support.v7.app.ActionBarActivity;
import android.view.View;
import android.widget.ArrayAdapter;
// @author: Laurent Meyer
public class SoMain extends ActionBarActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main_so);
FragmentTransaction fm = getSupportFragmentManager().beginTransaction();
fm.add(android.R.id.content, new BlankFragment()).commit();
}
public static class BlankFragment extends ListFragment {
private final String[] items = {
"one", "two", "three", "four", "five"
};
@Override
public void onViewCreated(View view, Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
ArrayAdapter<String> aa = new ArrayAdapter<>(getActivity(),
android.R.layout.simple_list_item_1, items);
setListAdapter(aa);
}
}
}
我需要创建一个新的空白项目真是太奇怪了!
希望它有所帮助!