2014-01-19 5 views
0

Я работаю над показом списка из arraylist hashmap. Я создал свой собственный адаптер, чтобы показать список. Но я не могу показать это в списке. Я не мог даже отлаживать внутри этого адаптера. Мой код выглядит следующим образом.ListAdapter не раздувает

public class ListAdapter extends BaseAdapter { 

    Context _context; 
    ArrayList<HashMap<String, String>> lists = new ArrayList<HashMap<String, String>>(); 
    public LayoutInflater myInflater; 
    public ListAdapter(Context context,ArrayList<HashMap<String, String>> list){ 
     this._context = context; 
     this.lists = list; 
    } 
    @Override 
    public int getCount() { 
     // TODO Auto-generated method stub 
     return 0; 
    } 

    @Override 
    public Object getItem(int position) { 
     // TODO Auto-generated method stub 
     return null; 
    } 

    @Override 
    public long getItemId(int position) { 
     // TODO Auto-generated method stub 
     return 0; 
    } 

    @Override 
    public View getView(int position, View convertView, ViewGroup parent) { 
     // TODO Auto-generated method stub 
     this.myInflater = (LayoutInflater) _context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
     if (convertView==null) 
     { 
      convertView = myInflater.inflate(R.layout.list_items, parent, false); 
      TextView TT = (TextView) convertView.findViewById(R.id.system_text); 
      System.out.println("systemName name is"+this.lists.get(position).get("SystemName")); 
      TT.setText(this.lists.get(position).get("SystemName")); 
     }  
     return convertView; 
    } 

} 

Спасибо.

+0

ваш GetView имп Лекция также неверна. переместите этот 'TT.setText (this.lists.get (position) .get (" SystemName "));' out if – Raghunandan

ответ

0

Вы возвращаетесь 0 из метода getCount(), это означает, что у вашего ListView нет товаров. Пожалуйста, исправьте это, чтобы вернуть количество элементов, которые у вас есть в списке.

@Override 
public int getCount() { 
    // TODO Auto-generated method stub 
    return items.size(); // HERE 
} 

Надеюсь, это поможет.

0

Заменить

convertView = myInflater.inflate(R.layout.list_items, parent, false); 

по

convertView = myInflater.inflate(R.layout.list_items, null); 

Пример:

LayoutInflater mInflater = (LayoutInflater) context 
      .getSystemService(Activity.LAYOUT_INFLATER_SERVICE); 
    return mInflater.inflate(view, null); 
0

это может помочь ...

public class ListAdapter extends BaseAdapter { 

    private ArrayList<HashMap<String, String>> lists = new ArrayList<HashMap<String, String>>(); 
    private final LayoutInflater myInflater; 

    public ListAdapter(Context context, ArrayList<HashMap<String, String>> list) { 
     this.lists = list; 
     myInflater = (LayoutInflater) context 
       .getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
    } 

    @Override 
    public int getCount() { 
     return lists.size(); 
    } 

    @Override 
    public Object getItem(int position) { 
     return lists.get(position); 
    } 

    @Override 
    public long getItemId(int position) { 
     return 0; 
    } 

    @Override 
    public View getView(int position, View convertView, ViewGroup parent) { 
     ViewWrapper viewWrapper = null; 
     if (convertView == null) { 
      convertView = myInflater.inflate(R.layout.list_items, null); 
      TextView textView = (TextView) convertView.findViewById(R.id.system_text); 
      viewWrapper = new ViewWrapper(); 
      viewWrapper.textView = textView; 
      convertView.setTag(viewWrapper); 
     } else { 
      viewWrapper = (ViewWrapper) convertView.getTag(); 
     } 
     System.out.println("systemName name is"+ lists.get(position).get("SystemName")); 
     viewWrapper.textView.setText(lists.get(position).get("SystemName")); 
     return convertView; 
    } 

    private static class ViewWrapper { 
     TextView textView; 
    } 
} 
Смежные вопросы