2012-03-28 3 views
0

привет всем, что я новичок в разработке Android и сталкиваюсь с проблемой с моим пользовательским списком ... listview не отображается на выходе ... вот мой код, пожалуйста, помогите мне ...ListView не отображается в эмуляторе

public class CustomListFilterBaseAdapterActivity extends Activity { 
int[] pincodes; 

//@Override 
String[] areas, districts, states; 
ListViewAdapterContacts lva; 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 
ListView lv=(ListView)findViewById(R.id.listview); 

lva = new ListViewAdapterContacts(this, pincodes, areas, districts, states); 

lv.setAdapter(lva); 
lv.setTextFilterEnabled(true); 
} 

public class ListViewAdapterContacts extends BaseAdapter{ 
Activity context; 
int[] pincodes={675755,757576,675766,8788686,876868,7686686,987977}; 
String[] areas={"ahdjhhd","sadahh","ahdhakshd","shdfkhkh","ahdkhakhd","ajsdghsd","asgdagdk"}; 
String[] districts={"warangal","adilabad","hyderabad","krishna","vizag","kakinada","karimnagar"}; 
String[] states={"Ap","orissa","kerala","gujarath","pune","banglore","thamilnadu"}; 

public ListViewAdapterContacts(Activity context, int[] pincodes, String[] areas, String[] districts, String[] states) { 
    // TODO Auto-generated constructor stub 

this.context=context; 
this.pincodes=pincodes; 
this.areas=areas; 
this.districts=districts; 
this.states=states; 
} 
@Override 
public int getCount() { 
    // TODO Auto-generated method stub 
    if(pincodes==null){ 
     return 0; 
    } 
    else{ 
     return pincodes.length; 
    } 
    } 

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

public class viewHolder { 
     TextView top; 
     TextView bottom; 
     TextView downside; 
     TextView base; 
    } 

@Override 
public View getView(int position, View convertView, ViewGroup parent) { 
    // TODO Auto-generated method stub 
    viewHolder holder; 
     if(convertView==null){ 

     LayoutInflater inflator=context.getLayoutInflater(); 
     convertView=inflator.inflate(R.layout.textviews,null); 

     holder=new viewHolder(); 
     holder.top=(TextView)convertView.findViewById(R.id.textview1); 
     holder.bottom=(TextView)convertView.findViewById(R.id.textview2); 
     holder.downside=(TextView)convertView.findViewById(R.id.textview3); 
     holder.base=(TextView)convertView.findViewById(R.id.textview4); 
     convertView.setTag(holder); 
     }else{ 
      holder=(viewHolder)convertView.getTag(); 
     } 
     holder.top.setText(pincodes[position]); 
     holder.bottom.setText(areas[position]); 
     holder.downside.setText(districts[position]); 
     holder.base.setText(states[position]); 

     View v=(View)convertView; 
     //return convertView; 
     return v; 
} 
    } 
} 
+0

Вы получаете какие-либо ошибки? – kosa

+0

Если вы не вводите эти типы массивов внутри вашего onCreate и просто объявляете массивы на базовом адаптере. – sdfwer

+0

before 'if (convertview == null) {View v = (View) convertView;'} ' –

ответ

0

Некоторые изменения Мино, необходимых на вашем коде PLS взглянуть на мой код и изменить свой код с этим

public View getView(int position, View v, ViewGroup parent){ 
      ViewHolder holder; 
     View convertView = v; 
     holder = new ViewHolder(); 

      if (convertView == null) { 
       holder.top=(TextView)convertView.findViewById(R.id.textview1); 
            holder.bottom=(TextView)convertView.findViewById(R.id.textview2); 
            holder.downside=(TextView)convertView.findViewById(R.id.textview3); 
            holder.base=(TextView)convertView.findViewById(R.id.textview4); 
            convertView.setTag(holder); 

      } 
      else { 
       holder = (ViewHolder) convertView.getTag(); 
      } 
      return convertView; 
} 

и GetCount() только положить это

return pincodes.length; 
+0

спасибо за ваш ответ n am получает NullPointerException при lva = new ListViewAdapterContacts (это, пинкоды, области, районы, состояния); –

+0

Поместите свой вид инфляции внутрь if statement 'if (rowView == null) { LayoutInflater inflator = context.getLayoutInflater(); convertView = inflator.inflate (R.layout.textviews, null); ' – Krutik

+0

, который говорит правильно, но сталкивается с проблемой с объектом внутреннего класса (ListViewAdapterContacts) (lva) ... в 'lva', который я создал в основном классе ... я получаю исключение nullpointer ... какая ошибка в моем коде tel me pls .... –

Смежные вопросы