0

我试图转换成listActivity listFragment,这一切都在适配器这样做,我不知道该怎么在onCreateView返回:/这里是listActivity:转换成listActivity listFragment

public void onCreate(Bundle icicle) { 
    super.onCreate(icicle); 

    // if extending Activity 
    //setContentView(R.layout.activity_main); 

    // 1. pass context and data to the custom adapter 
    MyAdapter adapter = new MyAdapter(getListView().getContext(), generateData()); 

    // if extending Activity 2. Get ListView from activity_main.xml 
    //ListView listView = (ListView) findViewById(R.id.listview); 

    // 3. setListAdapter 
    //listView.setAdapter(adapter); if extending Activity 
    setListAdapter(adapter); 
} 

private ArrayList<Model> generateData(){ 
    ArrayList<Model> models = new ArrayList<Model>(); 
    models.add(new Model("Group Title")); 
    models.add(new Model(R.drawable.star_icon,"Menu Item 1","1")); 
    models.add(new Model(R.drawable.star_icon,"Menu Item 2","2")); 
    models.add(new Model(R.drawable.star_icon,"Menu Item 3","12")); 

    return models; 
} 

回答

1

,所以我不知道是什么在onCreateView

如果从ListFragment继承返回,你不需要执行onCreateView()。正如ListActivity给你一个ListView在默认情况下(如果你不叫setContentView()ListFragment给你一个ListView在默认情况下(如果不重写onCreateView()

移到上面显示到你的ListFragmentonViewCreated()这就是所谓的代码后onCreateView()完成,所以你有你的ListView —,你应该设置

例如:

public class OtherFragment extends ListFragment { 
    private static final String[] items= { "lorem", "ipsum", "dolor", 
     "sit", "amet", "consectetuer", "adipiscing", "elit", "morbi", 
     "vel", "ligula", "vitae", "arcu", "aliquet", "mollis", "etiam", 
     "vel", "erat", "placerat", "ante", "porttitor", "sodales", 
     "pellentesque", "augue", "purus" }; 

    @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)); 
    } 
} 
+0

工作,非常感谢你! – Anas