Android 由于碎片,Listview适配器无法工作

Android 由于碎片,Listview适配器无法工作,android,android-fragments,android-listfragment,Android,Android Fragments,Android Listfragment,我想因为这些片段,我需要使用getActivity而不是这个。但它仍然会产生致命的错误,并且不起作用。请帮忙,提前谢谢 public class TabFragment2 extends Fragment { ListView listView; String[] ids; public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {

我想因为这些片段,我需要使用getActivity而不是这个。但它仍然会产生致命的错误,并且不起作用。请帮忙,提前谢谢

 public class TabFragment2 extends Fragment {


ListView listView;
String[] ids;

public View onCreateView(LayoutInflater inflater, ViewGroup container,
        Bundle savedInstanceState) {        

 View V = inflater.inflate(R.layout.tab_frag2_layout, container, false);

      _audioModel.LoadModel();
      listView = (ListView)V. findViewById(R.id.lsAudio);
      String[] ids = new String[_audioModel.Audios.size()];
      for (int i= 0; i < ids.length; i++){

          ids[i] = Integer.toString(i+1);
      }

      _audioAdapter adapter = new _audioAdapter(getActivity(),R.layout.audio_item, ids);
      listView.setAdapter(adapter);
这是我的uAudioAdapter.java代码的一部分

public class _audioAdapter extends ArrayAdapter<String> {

private final Context context;
private final String[] Ids;
private final int rowResourceId;

public _audioAdapter(Context context, int textViewResourceId, String[] objects) {

    super(context, textViewResourceId, objects);

    this.context = context;
    this.Ids = objects;
    this.rowResourceId = textViewResourceId;

}


@Override
public View getView(int position, View convertView, ViewGroup parent) {

    LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);

    View rowView = inflater.inflate(rowResourceId, parent, false);
    TextView audioName = (TextView) rowView.findViewById(R.id.textAudioName);

我经常为这个问题而斗争!! 问题出在片段/活动生命周期上 在onCreateView中,如果片段是活动的第一个片段,则该活动尚不存在。。。 如果您尝试调试或发布日志,我认为该错误是getActivity上的NullPointerException

快速肮脏技巧:

@Override
public void onActivityCreated(Bundle savedInstanceState) {
    super.onActivityCreated(savedInstanceState);
    /* All the code that need getActivity() */
}

在我的编辑中找到一个简单的技巧,但这不是最终的解决方案。如果有更多的碎片,这可能会有一些问题。如果你的活动只有一个子片段,这是一个快速的解决方法谢谢,但它没有像你说的那样对我起作用,因为我有3个片段,而这个片段是我的第二个片段。好的,试试这个,谈论同样的问题,解决方法是在onCrate中移动所有与getActivity相关的代码:我也尝试过,但也不起作用。我放弃使用tab主机。谢谢你的回答