各行に 1 つの textView と 1 つの編集テキストを含むカスタム リストがあります。私の質問は: ユーザーが edittext 内に任意の数字を入力するたびに、その時点で edittext から値を取得し、前の値に追加して上部のテキストビューに表示したいと考えています。たとえば。任意の編集テキストで 10 を入力した編集テキストの内側の数を言います。10 は最初に入力された数字です。その後、0 で追加されます。その後、別の編集テキストに 15 を入力すると、10+15 = 25 が上部のテキストビューに表示されます。
質問する
565 次
5 に答える
2
わかった...
それは、setOnFocusListener を使用するのと同じくらい簡単でした。編集 text.at からフォーカスが失われると、ブール値の hasFocus パラメーターがfalseになります。編集テキスト内の値を簡単に収集できます。でも応援してくれてありがとう。ありがとう1ce。
于 2012-07-26T06:32:57.687 に答える
1
そのためには、次のように EditText ビューで TextWatcher を使用する必要があります。
EditText editText1 = (EditText) findViewById(R.id.e1);
TextWatcher checker = new TextWatcher() {
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
if (ChecknotNull()) {
TextView1.setText(edittext1.getText().toString().trim());;
Note: You can Also Go on Concating the values with the
previous values Of the TextView(InShort,Perform Logic Here)
}
}
private boolean ChecknotNull() {
return editText1.getText().toString().trim().length() > 0;
}
};
//Set the checker method for the EditText View like this Way
editText1.addTextChangedListener(checker);
于 2012-07-26T06:28:47.803 に答える
1
これを試して
String content = edtEditText.getText().toString();
tvTextView.setText(content);
于 2012-07-26T06:15:30.407 に答える
1
よくわかりませんが、これは役に立ちます...しかし、これで試すことができます:
次のような編集テキストで setOnFocusListener を取得します。
mEditText.setOnFocusChangeListener(new OnFocusChangeListener() {
@Override
public void onFocusChange(View arg0, boolean arg1) {
int s=Integer.parseInt(mEditText.getText().toString());
int ps=Integer.parseInt(mTextView.getText().toString());
mTextView.setText((s+ps)+"");
mEditText.setText("");// clear editText after adding its value to textview
}
});
フォーカスがなくなったときに編集テキストを空にすることを忘れないでください。そうしないと、ユーザーが編集テキストをクリックして前のテキストを削除した場合でも、テキストビューに値が再び追加されます。
于 2012-07-26T06:20:14.387 に答える
0
アダプターで、次の操作を行います。
public View getView(int position, View convertView, ViewGroup parent) {
View vi = convertView;
ViewHolder holder = new ViewHolder();
p = values.get(position);
if (vi == null) {
vi = inflater.inflate(R.layout.feed_items, null);
holder.text = (TextView) vi.findViewById(R.id.tv);
holder.editText = (EditText) vi.findViewById(R.id.et);
holder.editText.addTextChangedListener(new TextWatcher(){
public void afterTextChanged(Editable s) {
i++;
int n = Integer.parseInt(holder.text.getText().toString());
int m = Integer.parseInt(s.getText().toString());
holder.text.setText("" + n + m);
}
public void beforeTextChanged(CharSequence s, int start, int count, int after){}
public void onTextChanged(CharSequence s, int start, int before, int count){}
});
vi.setTag(holder);
} else {
holder = (ViewHolder) vi.getTag();
}
return vi;
}
于 2012-07-26T06:59:03.133 に答える