Jeu de Carte Dans le Fragment de ListView

Je suis nouveau sur Android. Essayer d'obtenir une liste déjà contrôlés dans mon Activité Principale à un fragment.

Mon MainActivity s'étend FragmentActivity. Je reçois un null pointeur pour le jeu de carte, et pour la ligne contenant le populateList() méthode.

Ne sais pas si la solution est avec getActivity() et/ou la setListAdapter() option que j'ai lu à propos de. Je sais qu'il est de trouver les articles de la sauve, mais je ne suis pas sûr de savoir comment corriger ce problème. Aucune information serait grandement apprécié.

Infos Supplémentaires:
Je suis à l'aide de android.support.v4.app.FragmentActivity. FragmentS est dans public class TabbedActivity extends Fragment {

public static class FragmentS extends Fragment {
public FragmentS() {
}
List<LiftSave> LiftSaves = new ArrayList<LiftSave>();
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.listview_s,
container, false);
DatabaseHandler dbHandler;
dbHandler = new DatabaseHandler (getActivity().getApplicationContext());
if (dbHandler.getLiftSavesCount() != 0)
LiftSaves.addAll(dbHandler.getAllLiftSaves());
populateList();
return rootView;
}
private void populateList() {
ListView saveListView = (ListView)getActivity().findViewById(R.id.saveListView);
ArrayAdapter<LiftSave> saveAdapter;
saveAdapter = new SaveListAdapter();
saveListView.setAdapter(saveAdapter);
}
public class SaveListAdapter extends ArrayAdapter<LiftSave> {
public SaveListAdapter() {
super(getActivity(), R.layout.listview_item, LiftSaves);
}
@Override
public View getView(int position, View view, ViewGroup parent) {
if (view == null)
view = getActivity().getLayoutInflater().inflate(R.layout.listview_item, parent, false);
LiftSave currentLiftSave = LiftSaves.get(position);
TextView liftName = (TextView) view.findViewById(R.id.liftName);
liftName.setText(currentLiftSave.getLiftName());
TextView maxValue = (TextView) view.findViewById(R.id.maxValue);
maxValue.setText(currentLiftSave.getMaxValue());
TextView weightAndReps = (TextView) view.findViewById(R.id.weightAndReps);
weightAndReps.setText(currentLiftSave.getRepsAndWeight());
TextView liftNotes = (TextView) view.findViewById(R.id.liftNotes);
liftNotes.setText(currentLiftSave.getLiftNotes());
TextView date = (TextView) view.findViewById(R.id.todayDate);
date.setText(currentLiftSave.getTodayDate());
return view;
}
}}

XML:

  <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".TabbedActivity$FragmentS"
android:background="@android:color/holo_blue_dark">
<LinearLayout
android:id="@+id/tabSaveList"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
xmlns:android="http://schemas.android.com/apk/res/android">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceLarge"
android:text="Saved Maxes"
android:id="@+id/textView"
android:layout_gravity="center"
android:layout_marginTop="10dp"
android:textColor="#fffaf4a1"
android:textStyle="bold" />
<ListView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/saveListView" />
</LinearLayout>
</RelativeLayout>
  • 1) Pourquoi vous instancier votre adaptateur à deux reprises (en onCreateView()puis dans populateList() ) ? ---- 2) Mettre List<LiftSave> LiftSaves = new ArrayList<LiftSave>(); avant onCreateView() méthode
  • Haha, la plupart du temps hors de la confusion. J'ai déménagé Liste<LiftSave> comme vous l'avez mentionné avant onCreateView() . Merci pour votre réponse.
  • Malheureusement, je ne. java.lang.NullPointerException: Tentative d'invoquer la méthode virtuelle " void android.widget de.ListView.setAdapter(android.widget de.ListAdapter) " sur une référence d'objet nul
  • Assurez-vous d'avoir un ListView objet avec saveListView que l'identification, dans listview_s.xml
  • Il est, ainsi que l'Id correspond. FragmentS est contenue dans une autre classe appelée public class TabbedActivity extends Fragment {. Vous ne savez pas Si ce qui compte. Désolé pour mon formatage, pas utilisé pour l'affichage.
  • Vous pouvez poster votre listview_s.xml?
  • XML est en place. Également mentionné que je suis en utilisant android.support.v4.app.FragmentActivity

InformationsquelleAutor Austin | 2015-04-05