Android TextView TextWatcher
Android TextView TextWatcher
所以我有两个 EditText 和一个 TextView,
两个 EditText 是数字格式,我用它来比较两个大于或小于...,对于 TextView,这是我放置输出的地方。
我的问题是,当我在编辑文本中输入数字时,Textview 中没有任何变化。
下面是我的代码:
@Override
protected void onCreate(Bundle savedInstanceState)
{
etnumb_one= findViewById(R.id.etnumb_one);
etnumb_two= findViewById(R.id.etnumb_two);
tvOutput= findViewById(R.id.tvOutput);
tvOutput.addTextChangedListener(new TextWatcher() {
@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 afterTextChanged(Editable s)
{
tvOutput.setText(getOutput());
}
});
}
下面是我在 onCreate 之外的方法
public String getOutput()
{
int first = Integer.parseInt(etnumb_one.getText().toString());
int second= Integer.parseInt(etnumb_two.getText().toString());
String output;
if(first > second)
{
output= Integer.toString(first) + " : " + Integer.toString(second);
}
else
{
output= Integer.toString(first) + " : " + Integer.toString(second);
}
return output;
}
我只想在文本视图中查看输出。谢谢!
您正在 TextView
而不是 EditText
添加 TextWatcher
。
而不是
tvOutput.addTextChangedListener
使用:
etnumb_one.addTextChangedListener
所以我有两个 EditText 和一个 TextView, 两个 EditText 是数字格式,我用它来比较两个大于或小于...,对于 TextView,这是我放置输出的地方。 我的问题是,当我在编辑文本中输入数字时,Textview 中没有任何变化。
下面是我的代码:
@Override
protected void onCreate(Bundle savedInstanceState)
{
etnumb_one= findViewById(R.id.etnumb_one);
etnumb_two= findViewById(R.id.etnumb_two);
tvOutput= findViewById(R.id.tvOutput);
tvOutput.addTextChangedListener(new TextWatcher() {
@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 afterTextChanged(Editable s)
{
tvOutput.setText(getOutput());
}
});
}
下面是我在 onCreate 之外的方法
public String getOutput()
{
int first = Integer.parseInt(etnumb_one.getText().toString());
int second= Integer.parseInt(etnumb_two.getText().toString());
String output;
if(first > second)
{
output= Integer.toString(first) + " : " + Integer.toString(second);
}
else
{
output= Integer.toString(first) + " : " + Integer.toString(second);
}
return output;
}
我只想在文本视图中查看输出。谢谢!
您正在 TextView
而不是 EditText
添加 TextWatcher
。
而不是
tvOutput.addTextChangedListener
使用:
etnumb_one.addTextChangedListener