La méthode getView () de ArrayAdapter n'est pas appelée
Je suis très nouveau à développement android. Je suis en train de une construire une application avec des balises (qui sont ajoutés par le biais de fragments). Dans l'un des fragments, j'essaie d'afficher une liste. Cette liste a été rempli à l'aide de ListAdapter que j'ai prolongé de ArrayAdapter et j'ai surchargé getView ().
C'est mon fragment
public class tabcontentActivity extends Fragment {
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
if (container == null) {
return null;
}
View v = (LinearLayout) inflater.inflate(R.layout.tablayout, container,
false);
ListView lv = (ListView) v.findViewById(R.id.listview1);
ListViewAdapter adapter = new ListViewAdapter(container.getContext(),
android.R.layout.simple_list_item_1, R.id.textview1);
adapter.notifyDataSetChanged();
lv.setAdapter(adapter);
return v;
}
}
Et c'est de cette façon que j'ai mis en œuvre la ListAdapter
public class ListViewAdapter extends ArrayAdapter {
Context context1;
public ListViewAdapter(Context context,int resource, int textViewResourceId) {
super(context,resource,textViewResourceId);
this.context1 = context;
System.out.println("here aswell!!!!!!");
//TODO Auto-generated constructor stub
}
public View getView(int arg0, View convertView, ViewGroup arg2) {
//TODO Auto-generated method stub
System.out.println("@@@I AM HERE@@@");
LayoutInflater inflater = LayoutInflater.from(context1);
convertView = inflater.inflate(R.layout.tablayout, null);
TextView wv = (TextView) convertView.findViewById(R.id.textview1);
String summary = "<html><body><h1>This is happening!!!</h1></body></html>";
wv.setText(Html.fromHtml(summary));
convertView.setTag(wv);
return convertView;
}
}
La mise en page xml est
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<ListView
android:id="@+id/listview1"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
</ListView>
<TextView
android:id="@+id/textview1"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:text="myreader" />
</LinearLayout>
S'il vous plaît aidez-moi à trouver un moyen par lequel je peux faire ce travail.
source d'informationauteur user1272934
Vous devez vous connecter pour publier un commentaire.
Vous avez juste oublié de fournir les données du constructeur et ensuite faire le bon appel dans le constructeur:
Vous n'êtes pas la fourniture de toutes les données actuellement. Si vous voulez continuer à voir ce qui se passe dans la liste, remplacer la getCount() fonction.
Je pense que c'est quelque chose de ce genre.
Cela attirera un élément à votre liste. Et aussi appeler votre getView(). Et ya une fois que vous découvrez comment fournir votre source de données, modifier le getCount() à la taille de votre liste. Découvrez un tutoriel ici
http://www.shubhayu.com/android/listview-with-arrayadapter-and-customized-items
Lorsque nous créons une coutume arrayadapter nous devons être en utilisant soit
si nous ne sommes pas utiliser au-dessus de la mention de l'adaptateur, nous devons remplacer getCount() la méthode.
il semble que vous n'avez pas spécifié d'une source de données pour votre carte. Une source de données est quelque chose qui fournit des données à afficher , par ex une liste de tableaux ou d'un curseur. Si il n'y a pas de données à partir d'une source de données, getview() ne sera pas appelée du tout.
échanger la position
et remplacer méthode getcount