1

我有一个自定义列表,每行有一个 textView 和一个编辑文本。我的问题是:每当用户在edittext中输入任何数字时,我都想从edittext中获取值并将其与前一个值添加并显示在顶部textview中。例如。说我在任何编辑文本中输入 10 的内部编辑文本数。10是第一个输入的数字。然后它会加上0。之后如果他在另一个edittext中输入15,那么10 + 15 = 25 应该显示在顶部textview中。

4

5 回答 5

2

我得到了它...

这就像使用 setOnFocusListener 一样简单。如果焦点从编辑 text.at 中丢失,则布尔 hasFocus 参数变为false。我们可以很容易地收集编辑文本中的值。不过谢谢大家的支持。再次感谢 1ce。

于 2012-07-26T06:32:57.687 回答
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 回答
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 回答
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 回答