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 に答える