我有一个自定义列表,其中包含一个textView和一个 编辑每行中的文本。我的问题是:每当用户进入时 编辑文本中的任何数字,那时我想采取 edittext中的值,并将其与前一个值一起添加 显示在顶部textview中。 例如。说任何在我输入10的edittext内部数量 EditText上。 10是输入的第一个数字。然后它将添加 如果他在另一个编辑文本中输入15,那么10 + 15 = 25 应显示在顶部textview中。
答案 0 :(得分:2)
我明白了......
这就像使用setOnFocusListener一样简单。如果焦点从编辑text.at中丢失,则布尔hasFocus参数变为 false 。我们可以轻松地收集编辑文本中的值。但是谢谢你的帮助。再次感谢1ce。
答案 1 :(得分:1)
试试这个
String content = edtEditText.getText().toString();
tvTextView.setText(content);
答案 2 :(得分: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
}
});
当焦点消失时不要忘记清空edittext,否则当用户点击edittext甚至删除前一个时,值将再次添加到你的textview。
答案 3 :(得分:1)
您必须在EditText View上使用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);
答案 4 :(得分: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;
}