Метод getView () для ArrayAdapter не вызван

Я очень новичок в разработке Android. Я пытаюсь создать приложение с тегами (которые добавляются через фрагменты). В одном из фрагментов я пытаюсь отобразить список. Этот список был заполнен с помощью ListAdapter, который я расширил с ArrayAdapter, и я перегрузил метод getView (). Это мой фрагмент

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; } } 

И вот как я реализовал 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; } } 

Макет xml

 <?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> 

Пожалуйста, помогите мне найти способ, которым я смогу выполнить эту работу.

Solutions Collecting From Web of "Метод getView () для ArrayAdapter не вызван"

Вы просто забыли предоставить данные конструктору и затем сделать правильный вызов внутри конструктора:

 public ListViewAdapter(Context context,int resource, int textViewResourceId, List<YourObjectType> items) { super(context,resource,textViewResourceId, items); this.context1 = context; // TODO Auto-generated constructor stub } 

В настоящее время вы не предоставляете никаких данных. Если вы все еще хотите увидеть, что происходит в списке, переопределите функцию getCount ().

Я думаю, что это что-то в этом роде.

 public int getCount(){ return 1; } 

Это приведет к одному элементу в вашем списке. А также позвоните в getView (). И когда вы узнаете, как предоставить источник данных, измените getCount () на размер вашего списка. Ознакомьтесь с учебным пособием здесь.

http://www.shubhayu.com/android/listview-with-arrayadapter-and-customized-items

Похоже, что вы не указали источник данных для вашего адаптера. Источником данных является любая вещь, которая предоставляет данные для отображения, например, для ararylist или курсора. Если нет данных из источника данных, getview () вообще не будет вызван.

Когда мы создаем пользовательский массив, мы должны использовать либо

 public ArrayAdapter (Context context, int textViewResourceId, T[] objects) public ArrayAdapter (Context context, int resource, int textViewResourceId, T[] objects) public ArrayAdapter (Context context, int textViewResourceId, List<T> objects) public ArrayAdapter (Context context, int resource, int textViewResourceId, List<T> objects) 

Если мы не используем вышеупомянутый адаптер, нам необходимо переопределить метод getCount ().

  adapter.notifyDataSetChanged(); lv.setAdapter(adapter); 

Поменять местами

 Layoutinflator=getLayoutInflator(); 
  public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { if (container == 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); } else{ 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; } 

И переопределить метод getcount

  public int getCount(){ return 100; }