android - सूची दृश्य एडाप्टर टुकड़ा nullpointerexception सेट करें




listview fragment (2)

समस्या यह है कि जिस तरह से आपने अपनी ListView को आरंभ किया है यदि आप देख रहे हैं कि यह आपकी leadlist.xml फ़ाइल है हालांकि आरंभ करने के दौरान आप कॉल कर रहे हैं,

lv = (ListView) this.getActivity().findViewById(android.R.id.list); // this means your listView lv belongs to your MainActivity which actually doesn't.

इसे बदलने के लिए,

lv = (ListView) rootView.findViewById(android.R.id.list);

और यह काम करना चाहिए मुझे यह कैसे चला जाता है Lemme हैप्पी कोडिंग :)

मेरे पास वर्तमान में 3 टुकड़े हैं लेकिन मैं अपना एडाप्टर काम करने में सक्षम नहीं हूं जब मैं lv.setAdapter (lbadapter) को बुला रहा हूँ तो यह एक नलप्इन्टर अपवाद देता है क्या समस्या हो सकती है ?

अग्रिम में धन्यवाद

यहां मेरे टुकड़े का एक हिस्सा है:

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



    profielen = new ArrayList<Profile>();
    new getLeaderboards().execute(url);

    lv = (ListView) this.getActivity().findViewById(android.R.id.list);
    lbadapter = new LeaderBoardAdapter(this.getActivity(), R.layout.item_layout, profielen);


    return rootView;
}

public static class getLeaderboards extends AsyncTask<String, Void, JsonObject> {


    @Override
    protected JsonObject doInBackground(String... urls) {

        JsonObject x = parseURL.GetJSON(urls[0]);

        return x;
    }


    @Override
    protected void onPostExecute(JsonObject obj) {
        Gson gson = new Gson();
        JsonArray arr = obj.get("rows").getAsJsonArray();

        for (JsonElement el : arr) {
            Profile pat = gson.fromJson( el , Profile.class);
            profielen.add(pat);
        }

        lv.setAdapter(lbadapter);


    }

}

यहाँ मेरी leadlist.xml फ़ाइल है:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent" >

 <ListView
    android:id="@android:id/list"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:layout_centerInParent="true"
    android:divider="@null"
    android:dividerHeight="20dp" >
</ListView>


</RelativeLayout>

मेरा एडाप्टर:

    public class LeaderBoardAdapter extends ArrayAdapter<Profile>{

LayoutInflater vi;
List<Profile> profielen;
Context mContext;
int res;
public LeaderBoardAdapter(Context context, int resource,
        List<Profile> objects) {
    super(context, resource, objects);
    this.res = resource;
    this.profielen = objects;
    mContext = context;
    vi = (LayoutInflater) context
            .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
    // TODO Auto-generated method stub


    ProfileHolder holder = null;
    if(convertView == null)
    {
        LayoutInflater inflater = ((Activity)mContext).getLayoutInflater();
        convertView = vi.inflate(R.layout.item_layout, parent, false);
        convertView = inflater.inflate(res, parent, false);

        holder = new ProfileHolder();
        holder.name = (TextView)convertView.findViewById(R.id.nameChar);
        holder.pic = (ImageView)convertView.findViewById(R.id.imageChar);
        holder.rank = (TextView)convertView.findViewById(R.id.ratingNumber);

        convertView.setTag(holder);
    }
    else
    {
        holder = (ProfileHolder)convertView.getTag();
    }

    Profile p = profielen.get(position);
    holder.name.setText(p.getName());
    holder.rank.setText(p.getRanking());

    return convertView;

}

public static class ProfileHolder{
    TextView name;
    ImageView pic;
    TextView rank;
}





}

हो सकता है आपको ऐसा करना चाहिए

lv = (ListView) rootView.findViewById(android.R.id.list);

के बजाय

lv = (ListView) this.getActivity().findViewById(android.R.id.list);

सूची दृश्य मानते हुए टुकड़े में है।





adapter