碎片中的ArrayAdapter-Android

碎片中的ArrayAdapter-Android,android,listview,android-fragments,android-listview,android-arrayadapter,Android,Listview,Android Fragments,Android Listview,Android Arrayadapter,我犯了一些错误,我不知道为什么。我正在用片段中字符串的数组适配器填充ListView。我使用这个片段作为主屏幕显示在主活动中 这是我的密码 public class HomePage extends Fragment { private ListView lvHomePage; private String[] items; @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bun

我犯了一些错误,我不知道为什么。我正在用片段中字符串的数组适配器填充ListView。我使用这个片段作为主屏幕显示在主活动中 这是我的密码

public class HomePage extends Fragment {

private ListView lvHomePage;
private String[] items;

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    View view = inflater.inflate(R.layout.fragment_home_page, container, false);

    items = getActivity().getResources().getStringArray(R.array.test);
    lvHomePage = (ListView) getActivity().findViewById(R.id.lvHomePage);

    lvHomePage.setAdapter(new ArrayAdapter<String>(getActivity().getApplicationContext(),
    android.R.layout.simple_list_item_1 , items));

    return view;
}
}

lvHomePage
必须为空。使用
lvHomePage=(ListView)view.findviewbyd(R.id.lvHomePage)取而代之。

问题出在
lvHomePage=(ListView)getActivity()中
这是错误的,您应该得到根视图是
视图
而不是活动 所以应该是这样

lvHomePage=(ListView)view.findviewbyd(R.id.lvHomePage)

试试这种方法

 private ListView lvHomePage;
    private String[] items;
    private View view;

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    View view = inflater.inflate(R.layout.fragment_home_page, container, false);

    return view;
}

@Override
    public void onActivityCreated(@Nullable Bundle savedInstanceState) {
        super.onActivityCreated(savedInstanceState);

    items = view.getResources().getStringArray(R.array.test);
    lvHomePage = (ListView) view.findViewById(R.id.lvHomePage);

    lvHomePage.setAdapter(new ArrayAdapter<String>(view.getContext(),
    android.R.layout.simple_list_item_1 , items));
   ...
}
private-ListView-lvHomePage;
私有字符串[]项;
私人视野;
@凌驾
CreateView上的公共视图(布局、充气机、视图组容器、捆绑包保存状态){
视图=充气机。充气(R.layout.fragment\u主页,容器,false);
返回视图;
}
@凌驾
ActivityCreated上的公共无效(@Nullable Bundle savedinStateCState){
super.onActivityCreated(savedInstanceState);
items=view.getResources().getStringArray(R.array.test);
lvHomePage=(ListView)view.findviewbyd(R.id.lvHomePage);
lvHomePage.setAdapter(新的ArrayAdapter(view.getContext()),
android.R.layout.simple_list_item_1,items));
...
}

正如艾尔所说,我应该使用视图而不是getActivity()
 private ListView lvHomePage;
    private String[] items;
    private View view;

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    View view = inflater.inflate(R.layout.fragment_home_page, container, false);

    return view;
}

@Override
    public void onActivityCreated(@Nullable Bundle savedInstanceState) {
        super.onActivityCreated(savedInstanceState);

    items = view.getResources().getStringArray(R.array.test);
    lvHomePage = (ListView) view.findViewById(R.id.lvHomePage);

    lvHomePage.setAdapter(new ArrayAdapter<String>(view.getContext(),
    android.R.layout.simple_list_item_1 , items));
   ...
}