我是新手,如果textview 2的值优于50,我想改变textview1的值。 P.s :(我想增加它的值)
任何建议!
答案 0 :(得分:0)
好。假设我们有两个textview - textviewA和textviewB。您希望textviewA在textviewB的值更改时更改。你做了这样的事情(我假设你已经为这些文本视图声明并完成了findViewById。)
textviewB.addTextChangedListener(new TextWatcher()){
//You override three methods here beforeTextChanged(),onTextChanged() and //afterTextChanged(). Since you are dealing with changing a textview's value //after the other textview has changed, you could use afterTextChanged()
...
@Override
public void afterTextChanged(Editable editable) {
if (editable != null){
String textInEditable = editable.toString();
int number = Integer.parseInt(textInEditable);
if (number > 50){
textviewA.setText("Whatever text you want");
//as Keara mentioned in the comment below, the number would simply be incremented with 1 so number++ before you set the number to the textview.
}}}
沿着这些方向的东西
答案 1 :(得分:0)
据我所知,你只想在text2的值超过50时增加text1的值,这意味着如果text2超过50且保持在50以上,则text1的值应该只增加一次。 / p>
修改Samuel Agbede的回答
:host /deep/ .ngb-dp-header {
//...
}
这样,只有当数字一次又一次超过50时,你才会有增量。 因此,如果数字变为51,它将增加,如果它从51变为假设60,它将不会增加,除非值首先低于50,这是你想要的。
上面的 boolean isValueChanged = true;
textViewB.addTextChangedListener(new TextWatcher()){
@Override
public void afterTextChanged(Editable editable) {
if (editable != null){
String textInEditable = editable.toString();
int number = Integer.parseInt(textInEditable);
if (number > 50 && isValueChanged){
textViewA.setText(String.valueOf(number+1));
isValueChanged = false;
}
if (number < 50){
isValueChanged = true;
}
}
}
}
是为了确保它不会重复递增isValueChanged
的值,并且仅在值textViewA
的值中递增时才会递增。
此处递增的值是above 50->below50->above 50
的值,这意味着如果textViewB
包含101,那么textViewB
将包含102,您可以根据需要对其进行修改