【问题标题】:invoke virtual method 'void android.widget.ListView.setAdapter(android.widget.ListAdapter)' on a null object reference在空对象引用上调用虚拟方法“void android.widget.ListView.setAdapter(android.widget.ListAdapter)”
【发布时间】:2016-01-14 03:44:47
【问题描述】:

您好,我很难解决这个错误

this is the errorenter image description here

我在填充片段中的列表视图时遇到问题。我的片段是一个标签,我假设这可能是我的问题所在。

我希望你能帮助我 谢谢各位

import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.TextView;

import java.util.ArrayList;
import java.util.List;


/**
  * Created by Mark Angelo on 1/13/2016.
 */  
public class ListFragment extends Fragment {


TextView code,name,quantity,total;
ListView lv;
List<List_Items> myList = new ArrayList<List_Items>();


public ListFragment(){

}

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


}



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

    populateList();
    populateListView();


    //lv = (ListView)getActivity().findViewById(R.id.client_listView);

    return view;
}


private void populateList() {

    myList.add(new List_Items("19912","Mark Angelo Bajaro", "1", "1993"));
    myList.add(new List_Items("12812","Jonas Zaldua","3","18841"));
    myList.add(new List_Items("2323", "Thor Sevilla", "1", "12121"));

}

private void populateListView() {

    ArrayAdapter<List_Items> adapter = new MyListAdapter();
    ListView list =  (ListView)getActivity().findViewById(R.id.client_listView);
    list.setAdapter(adapter);
}



private class MyListAdapter extends ArrayAdapter<List_Items> {
    public MyListAdapter() {super(getActivity(), R.layout.list_content_layout, myList); }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        View itemview = convertView;
        if(itemview == null){
            itemview = getActivity().getLayoutInflater().inflate(R.layout.list_content_layout,parent,false);
        }

        List_Items currentlist = myList.get(position);

        code = (TextView)itemview.findViewById(R.id.code_contentent);
        name = (TextView)itemview.findViewById(R.id.name_content);
        quantity = (TextView)itemview.findViewById(R.id.quantity_content);
        total = (TextView)itemview.findViewById(R.id.total_content);

        code.setText(currentlist.getCode());
        name.setText(currentlist.getClient_name());
        quantity.setText(currentlist.getQuantity());
        total.setText(currentlist.getTotal());


        return itemview;
    }


}

}

【问题讨论】:

    标签: android listview fragment


    【解决方案1】:

    您的 ListView 在片段布局内吗?还是在活动布局中。

    如果它在片段布局中,请尝试更改

    ListView list =  (ListView)getActivity().findViewById(R.id.client_listView);
    

    ListView list =  (ListView) view.findViewById(R.id.client_listView);
    

    希望能解决。

    【讨论】:

    • 谢谢 :) 它解决了我的问题,但我必须在外面声明 View view
    【解决方案2】:

    NullPointerException 当您尝试调用一些尚未初始化的函数时发生

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-11-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-08-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多