Java 在自定义ListView中调用getView()方法

Java 在自定义ListView中调用getView()方法,java,android,android-arrayadapter,custom-lists,Java,Android,Android Arrayadapter,Custom Lists,我正在使用自定义ListView,列表行右侧有文本和箭头图像 我有以下几点 1:MainActivity扩展了ListActivity 2:SpecialAdapter扩展了ArrayAdapter的getView()方法 3:Sqlite数据库的类 我有一个编辑文本和添加按钮,用于将新文本存储到数据库和我的列表中。代码在这里 OnClickListener listenerAdd = new OnClickListener() { @Override publ

我正在使用自定义
ListView
,列表行右侧有文本和箭头图像

我有以下几点

1:MainActivity扩展了ListActivity

2:SpecialAdapter扩展了ArrayAdapter的getView()方法

3:Sqlite数据库的类

我有一个
编辑文本
和添加
按钮
,用于将新文本存储到数据库和我的列表中。代码在这里

 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;
    }
}
公共类SpecialAdapter扩展了ArrayAdapter{
语境;
国际布局资源;
注释数据[]=null;
//注释数据com[]=null;
公共SpecialAdapter(上下文上下文、内部布局资源ID、注释[]值){
超级(上下文、布局资源ID、值);
this.layoutResourceId=layoutResourceId;
this.context=上下文;
这个数据=数值;
}
@凌驾
公共视图getView(int位置、视图转换视图、视图组父视图){
视图行=转换视图;
WeatherHolder=null;
if(行==null)
{
LayoutInflater充气器=((活动)上下文)。getLayoutInflater();
行=充气机。充气(layoutResourceId,父级,false);
支架=新的密封支架();
holder.imgIcon=(ImageView)row.findViewById(R.id.img_箭头);
holder.txtTitle=(TextView)row.findViewById(R.id.tv_编号);
row.setTag(支架);
}
其他的
{
holder=(WeatherHolder)row.getTag();
}
注释=数据[位置];
holder.txtTitle.setText(comment.getComment());
支架.imgIcon.setImageResource(R.可绘制箭头);
返回行;
}
静态类风挡
{
ImageView imgIcon;
TextView-txtTitle;
}
}

您必须将
onClickListner
放在您的类中,该类将扩展到
活动。还要确保XML文件包含该按钮。否则您将得到异常

i、 e


您的按钮应该位于
yourXMLLayoutFileName
XML文件中您必须将
onClickListner
放在您的类中,该类将扩展到
Activity
。还要确保XML文件包含该按钮。否则您将得到异常

i、 e


您的按钮应该位于
yourXMLLayoutFileName
XML文件中

粘贴您的适配器代码我添加了适配器代码,请检查@卡迪尔现在告诉plz。你的问题是什么?我可以把onclick侦听器代码放在哪个类中。粘贴你的适配器代码我添加了适配器代码,请检查@卡迪尔现在告诉plz。您的问题是,我可以将onclick侦听器代码放在哪个类中。
setContentView(R.layout.yourXMLLayoutFileName);