Listview jeu de carte fragment nullpointerexception
J'ai actuellement 3 fragments, mais je ne suis pas en mesure d'obtenir ma carte de travail.
Quand je fais appel lv.setAdapter(lbadapter) elle retourne un nullpointer exception.
Quel pourrait être le problème ?
Merci d'avance
Voici une partie de mon 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);
}
}
Voici mon leadlist.xml fichier :
<?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>
Mon adaptateur :
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;
}
}
essayez de démarrer AsyncTask après l'initialisation des ListView
peut aider stackoverflow.com/questions/28148618/...
peut aider stackoverflow.com/questions/28148618/...
OriginalL'auteur David | 2014-02-15
Vous devez vous connecter pour publier un commentaire.
Au lieu de faire cela. Depuis l'affichage de la liste n'est pas directement liée à votre
Activity
. C'est l'affichage de la vue à l'intérieur du fragment, qui est à laListView
Qui est basé sur ce que vous avez besoin de montrer à l'intérieur du fragment.
L'un fonctionne bien si vous avez besoin même de l'INTERFACE utilisateur sur chaque fragment.
Ouais dans ce cas, vous pouvez utiliser le même fragment de lui-même
OriginalL'auteur Triode
Peut-être vous avez besoin de faire comme ça
au lieu de
En supposant que la vue de liste dans le fragment.
Ouais, peut-être que nous où le faire en même temps...
Si vous jetez un oeil à la fois diff vous pouvez affiner cette.
OriginalL'auteur umair.ali
Le problème réside dans la façon dont vous avez initialisé votre Liste. Si vous remarquez qu'il appartient à votre leadlist.xml fichier. Cependant lors de l'initialisation que vous appelez,
De changer cela pour que,
et cela devrait fonctionner. Lemme moi comment ça se passe. Amusez-vous bien 🙂
OriginalL'auteur Atul O Holic