私は 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);
}