[英]Calling getView() method in custom ListView
我在列表行的右側使用了帶有文本和箭頭圖像的自定義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;
}
}
你必須把onClickListner
它延伸到yourClass Actvity
。 還要確保您的XML文件包含該按鈕。 否則您將獲得異常。
即
setContentView(R.layout.yourXMLLayoutFileName);
您的按鈕應該在yourXMLLayoutFileName
XML文件中
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.