首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在这种情况下,如何显示条件运算的结果?

在这种情况下,如何显示条件运算的结果?
EN

Stack Overflow用户
提问于 2019-03-12 16:45:20
回答 3查看 77关注 0票数 0

我是编程新手,我正在学习如何使用Android Studio。

上下文:在屏幕上,用户输入四个值并按下按钮,执行这些值的求和并将结果显示在屏幕上。但现在,我还需要显示“排序”的结果,在本例中,它由"dpaResult“表示。

问题:我需要帮助来知道如何显示下面条件运算的"dpaResult“结果。下面是我完成的代码片段:(我在代码中留下了一些注释)

代码语言:javascript
复制
buttonEnviar.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        int valorS = Integer.valueOf(editValorS.getText().toString());
        int valorT = Integer.valueOf(editValorT.getText().toString());
        int valorU = Integer.valueOf(editValorU.getText().toString());
        int valorV = Integer.valueOf(editValorV.getText().toString());

        //Sums DPA array fields
        int dpa = (valorS + valorT + valorU + valorV);

        //Sorts the DPA Matrix
        if (dpa<=10){
            String dpaResult = "Baixo";
            Log.i("DPA ", dpaResult);
        }else if (dpa>10 && dpa<16){
            String dpaResult = "Médio";
            Log.i("DPA ", dpaResult);
        }else if (dpa>=16){
            String dpaResult = "Alto";
            Log.i("DPA ", dpaResult);
        }

        textResultado.setText(String.valueOf("O resultado é: " + dpa));//Here only shows the sum value, I need the value "dpaResult" too !!
    }
});

注意:如果需要的话,我可以完整地编写代码,包括xml。

我感谢你的帮助

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2019-03-12 16:49:27

dpaResultLog.i(..)移出条件if语句,并聚合为textResultado文本值和dpaResult字符串,如下所示:

代码语言:javascript
复制
String dpaResult;
//Sorts the DPA Matrix
if (dpa<=10){
    dpaResult = "Baixo";
}else if (dpa>10 && dpa<16){
    dpaResult = "Médio";
}else {
    dpaResult = "Alto";
}

textResultado.setText(String.valueOf("O resultado é: " + dpa + "; Result: " + dpaResult));
票数 3
EN

Stack Overflow用户

发布于 2019-03-12 16:50:15

使dpaResult变量成为全局变量,并使用它来设置结果。之后,使用变量在TextView中设置字符串。

代码语言:javascript
复制
buttonEnviar.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            int valorS = Integer.valueOf(editValorS.getText().toString());
            int valorT = Integer.valueOf(editValorT.getText().toString());
            int valorU = Integer.valueOf(editValorU.getText().toString());
            int valorV = Integer.valueOf(editValorV.getText().toString());

            //Sums DPA array fields
            int dpa = (valorS + valorT + valorU + valorV);

            String dpaResult = "";
            //Sorts the DPA Matrix
            if (dpa<=10){
                dpaResult = "Baixo";
            }else if (dpa>10 && dpa<16){
                dpaResult = "Médio";
            }else if (dpa>=16){
                dpaResult = "Alto";
            }
            Log.i("DPA ", dpaResult);

            textResultado.setText(String.valueOf("O resultado é: " + dpa + " Result " + dpaResult ));
        }

   });
票数 0
EN

Stack Overflow用户

发布于 2019-03-12 17:20:11

理想情况下,您应该将逻辑放在click listener之外,以便可以独立测试。因此,在presenter或view model或外部listener中创建一个函数,并从listener内部调用它。

代码语言:javascript
复制
 String getDpaResult(int dpa) {
        String dpaResult;
        // Sorts the DPA Matrix
        if (dpa <= 10) {
            dpaResult = "Baixo";
        } else if (dpa > 10 && dpa < 16) {
            dpaResult = "Médio";
        } else { // dpa >= 16
            dpaResult = "Alto";
        }
        return dpaResult;
    }

 Inside Listener

 textResultado.setText(String.valueOf("O resultado é: " + getDpaResult(dpa));//Here only shows the sum value, I need the value "dpaResult" too !!
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55117265

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档