2

私は ArrayAdapter を持っていて、いくつかの TextView でコントロールを変更するために TextWatcher を使用していますが、問題があります。変更後に編集可能なビューを選択する方法がわかりません。OnClickListener を追加して利益を得ようとしましたが、すべてがうまく機能するには、まず View をクリックし、TextView をクリックする必要があります

ViewHolder holder;
    @Override
    public View getView(int position, View convertView, ViewGroup parent) {     

        if (convertView == null) {
            LayoutInflater inflater = 
                    (LayoutInflater)getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
            convertView = inflater.inflate(R.layout.item_row, null);

            holder = new ViewHolder();
            holder.value = (EditText) convertView.findViewById(R.id.value);
            holder.item = (TextView) convertView.findViewById(R.id.item);
            holder.relust = (TextView) convertView.findViewById(R.id.result);

            convertView.setOnClickListener(this);       


            convertView.setTag(holder);
        } else {
            holder = (ViewHolder) convertView.getTag();
        }
        holder.item.setText(items.get(position) + "");
        holder.position = position;
        return convertView;
    }

    @Override
    public void afterTextChanged(Editable text) {
        if (text.length() != 0) {
            Double value = Double.valueOf(text.toString());
            Double result = value * 2;
            holder.relust.setText("= " + result + " sm");
        }
    }

    @Override
    public void beforeTextChanged(CharSequence s, int start, int count,int after) {}

    @Override
    public void onTextChanged(CharSequence s, int start, int before, int count) {}

    @Override
    public void onClick(View v) {
        holder = (ViewHolder) v.getTag();
        holder.value.addTextChangedListener(this);
    }
4

0 に答える 0