Listview-set-adapter fragment nullpointerexception
Ich habe derzeit 3 Fragmente, aber ich bin nicht in der Lage, mein adapter funktioniert.
Wenn ich rufe lv.setAdapter(lbadapter) gibt es eine nullpointer exception.
Was könnte das problem sein ?
Vielen Dank im Voraus
Hier ist ein Teil meiner fragment :
@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);
}
}
Hier ist meine leadlist.xml Datei :
<?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>
Mein adapter :
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;
}
}
versuchen zu starten AsyncTask nach der Initialisierung der ListView
kann jede Hilfe stackoverflow.com/questions/28148618/...
kann jede Hilfe stackoverflow.com/questions/28148618/...
InformationsquelleAutor David | 2014-02-15
Schreibe einen Kommentar Antworten abbrechen
Du musst angemeldet sein, um einen Kommentar abzugeben.
Stattdessen dies tun. Da die Listenansicht nicht direkt mit Ihrem
Activity
. Es ist die umschließende Blick in das fragment, das hält dieListView
Die basiert auf, was Sie brauchen, um zu zeigen, innerhalb des fragments.
Einer wird funktionieren, wenn Sie brauchen, gleiche UI auf jedem fragment.
Ja, in diesem Fall können Sie verwenden den gleichen fragment selbst
InformationsquelleAutor Triode
Kann Sie brauchen, um machen, wie das
statt
Vorausgesetzt, die Listenansicht ist im fragment.
Yup, wir können es tun, wo es gleichzeitig...
Wenn Sie einen Blick auf die Zeit-diff können Sie eingrenzen.
InformationsquelleAutor umair.ali
Das problem liegt in der Art und Weise haben Sie initialisiert dein ListView. Wenn Sie bemerken, es gehört zu Ihre leadlist.xml Datei. Jedoch während der Initialisierung, die Sie anrufen,
Ändern,
und es sollte funktionieren. Sag mir, wie es geht. Happy coding 🙂
InformationsquelleAutor Atul O Holic