直接在edittext中输入数据时更新textview

时间:2016-12-31 09:32:15

标签: android

我知道这个主题有很多答案,但我还有一个问题需要做一件额外的事情。

我想在edittext中输入数据时更新文本视图((我知道这一部分))。

问题:如果我有一个按钮,当我点击该按钮时,我想发布输入的文本并结束更新方法。

这是代码:

//in a class
//I declared these objects and found them by id
Button button;
TextView textview;
EditText edittext;


//in the oncreate method

//I made a string variable called enteredData;

String enteredData=edittext.getText().toString();

//now to update the textview each time I type data in edittext

edittext.addTextChangedListener(new TextWatcher() {
        @Override
        public void onTextChanged(CharSequence s, int start, int before, int count) {
            // TODO Auto-generated method stub
        }

        @Override
        public void beforeTextChanged(CharSequence s, int start, int count,
                int after) {
            // TODO Auto-generated method stub

        }

        @Override
        public void afterTextChanged(Editable s) {
            textview.setText(enteredData);


            }
        }
    });


    //The problem here

    button.setOnClickListener(new View.OnClickListener() {
    @override
    public void onClick(View view){
    //how to set the text finally into the text view and stop the update of
     //this text view

    }
    });

感谢。

3 个答案:

答案 0 :(得分:0)

button.setOnClickListener(new View.OnClickListener() {
@override
public void onClick(View view){
String enteredData=edittext.getText().toString();
textview.setText(enteredData);
textview.setEnabled(false);   // you have to enable again 
}
});

答案 1 :(得分:0)

@Hasan BT

public class MainActivity extends AppCompatActivity implements View.OnClickListener {

TextView textView;
Button button;
EditText editText;
boolean flag;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    textView = (TextView) findViewById(R.id.lblHeader);
    button = (Button) findViewById(R.id.btnFragmentOne);
    editText = (EditText) findViewById(R.id.editText);
    button.setOnClickListener(this);


    editText.addTextChangedListener(new TextWatcher() {
        @Override
        public void onTextChanged(CharSequence s, int start, int before, int count) {
            // TODO Auto-generated method stub
            if(!flag)
                textView.setText(s);
        }

        @Override
        public void beforeTextChanged(CharSequence s, int start, int count,
                                      int after) {
            // TODO Auto-generated method stub

        }

        @Override
        public void afterTextChanged(Editable s) {
        }
    });
}

@Override
public void onClick(View view) {
    flag = true;
}

}

答案 2 :(得分:0)

这很简单 -

String enteredData=edittext.getText().toString();
Boolean pauseTextEntered=false;

edittext.addTextChangedListener(new TextWatcher() {

        @Override
        public void afterTextChanged(Editable s) {
            if(!pauseTextEntered)
            textview.setText(enteredData);


            }
        }
    });


    button.setOnClickListener(new View.OnClickListener() {
    @override
    public void onClick(View view){
    if(!pauseTextEntered)
    textview.setText(enteredData);
    pauseTextEntered=true;    
    }
    });