textview的增量整数值取决于其他textview内容

时间:2017-12-17 22:08:34

标签: java android

我是新手,如果textview 2的值优于50,我想改变textview1的值。 P.s :(我想增加它的值)

任何建议!

2 个答案:

答案 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,您可以根据需要对其进行修改