0

我有一个包含 Textview 和 Edittext 的列表视图。我在相同的布局上有一个按钮。我希望当我单击该按钮时,在列表视图的位置 3 上获取数据的某些位置会被其他一些文本更改

我已经尝试过这段代码,但它不起作用

public View getView(int position, View convertView, ViewGroup parent) {
                    LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
                    convertView = inflater.inflate(R.layout.taskstrt, parent, false);

                   if (convertView == null || convertView.getTag() == null) {

                         holder = new ViewHolder();



                        holder.editText = (EditText) convertView.findViewById(R.id.editText1);
                        holder.textView = (TextView) convertView.findViewById(R.id.textView1);

                        holder.textView.setText(values.get(position).toString());
                        holder.editText.setText(arrayList2.get(position).toString());
                        holder.textView.setId(position);
                        holder.editText.setId(position);
                        holder.editText.setEnabled(false);


                   }

                   button.setOnClickListener(new OnClickListener() {

                    public void onClick(View v) {
                        // TODO Auto-generated method stub
                        try{


                        button.setEnabled(false);
                        holder.editText.setId(2);
                        holder.editText.setText("ACCEPT");
                        }
                        catch(Exception e)
                        {
                            System.out.println("ERROR:");
                        }
                    }
                });

                   convertView.setTag(holder);
                   return convertView;
                }
4

1 回答 1

0

首先这是getView应该的样子:

public View getView(int position, View convertView, ViewGroup parent) {
    if (convertView == null) {

        LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        convertView = inflater.inflate(R.layout.taskstrt, parent, false);
        holder = new ViewHolder();
        //..instantiations

        convertView.setTag(holder);
    } else {
        holder = (ViewHolder) convertView.getTag();
    }
    //^don't forget that this up there


    //...listeners and what not here
    return convertView;
}

此外,我注意到您的按钮没有作为 getView 的一部分实例化,就像其他持有者视图一样。如在哪里?

Button button = (Button) convertView.findViewById(R.id.button1);

如果它是同一布局的一部分,为什么它不是持有者类的一部分?如果按钮没有被实例化为同一视图层次结构的一部分或根本没有实例化,那么该按钮将不会响应任何内容。

于 2012-12-14T09:36:36.027 回答