2013-02-09 2 views
1

Я использую пользовательский ListView с текстом и изображением стрелки справа от строки списка.Вызов метода getView() в пользовательском ListView

У меня есть следующие

1: MainActivity простирается ListActivity

2: SpecialAdapter расширяет ArrayAdapter есть GetView метод().

3: классы для базы данных Sqlite.

У меня есть EditText и добавить Button для хранения нового текста в базу данных, а также в мой список. Код здесь.

OnClickListener listenerAdd = new OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      Comment comment = null; 
      EditText edit = (EditText) findViewById(R.id.edit_txt); 
      String number = edit.getText().toString(); 
      if(!number.equals("")){ 
      comment = datasource.createComment(number); 
      adapter.add(comment); 
      edit.setText(""); 
      adapter.notifyDataSetChanged(); 
      } 
      else{ 
       Toast.makeText(getApplicationContext(), "Please enter a Number",Toast.LENGTH_SHORT).show(); 
      } 
     } 
    }; 

Я полностью смущен тем, что в каком классе я должен использовать этот код?

Как вызвать метод getView?

Я использовал этот код в основном классе, но это исключает исключение.

Чем важнее то, какой адаптер мне следует использовать?

адаптер код здесь ..

public class SpecialAdapter extends ArrayAdapter<Comment>{ 

    Context context; 
    int layoutResourceId; 
    Comment data[]= null; 
    // Comment dataCom[] = null; 
    public SpecialAdapter(Context context, int layoutResourceId,Comment[] values) { 
     super(context, layoutResourceId, values); 
     this.layoutResourceId = layoutResourceId; 
     this.context = context; 
     this.data = values; 
    } 

    @Override 
    public View getView(int position, View convertView, ViewGroup parent) { 
     View row = convertView; 
     WeatherHolder holder = null; 

     if(row == null) 
     { 
      LayoutInflater inflater = ((Activity)context).getLayoutInflater(); 
      row = inflater.inflate(layoutResourceId, parent, false); 

      holder = new WeatherHolder(); 
      holder.imgIcon = (ImageView)row.findViewById(R.id.img_arrow); 
      holder.txtTitle = (TextView)row.findViewById(R.id.tv_number); 

      row.setTag(holder); 
     } 
     else 
     { 
      holder = (WeatherHolder)row.getTag(); 
     } 

     Comment comment = data[position]; 
     holder.txtTitle.setText(comment.getComment()); 
     holder.imgIcon.setImageResource(R.drawable.arrow); 

     return row; 
    } 

    static class WeatherHolder 
    { 
     ImageView imgIcon; 
     TextView txtTitle; 
    } 
} 
+0

вставить код адаптера –

+0

я добавил код адаптера, пожалуйста, проверьте. @Qadir –

+0

сейчас рассказывать plz. Whats ваш вопрос –

ответ

1

вы должны положить в YourClass на onClickListner который простирающееся на Actvity. Также убедитесь, что в вашем файлеXX есть эта кнопка. иначе вы получите Exception.

т.е.

setContentView(R.layout.yourXMLLayoutFileName); 

ваша кнопка должна быть в файле XML yourXMLLayoutFileName