如何在一个textView中显示许多变量

时间:2019-03-27 19:43:02

标签: java android

我正在Android Studio中从事我的第一个项目,我陷入了“如何在一个textView中显示不同变量”的问题。更清楚地说,我正在开发一个要求用户输入性别的应用程序。每个性别都有自己的计算方法。所以我想在主界面和一个TextView中显示用户执行的结果计算。我已经尝试了很多次,但是结果是“ 0.0”

我添加了另一个textView,并将每种计算方法分配给一个textview,从而能够显示两个结果。

public class Main_Interface extends AppCompatActivity implements View.OnClickListener{
    private TextView results;
    //private TextView fResults;//this is the second textview that I created.







    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main__interface);




        results = (TextView)findViewById(R.id.results);
        if(results.getText().toString().equals("0.0")) {
            results.setVisibility(View.INVISIBLE);
        }

        //fResults = (TextView)findViewById(R.id.fResults);
       // if(fResults.getText().toString().equals("0.0")){
        //    fResults.setVisibility(View.INVISIBLE );
       // }



        calculateMale();
        calculateFemale();
    }


    public void calculateMale(){
        SharedPreferences s = getSharedPreferences("data", Context.MODE_PRIVATE);
        double weight = s.getFloat("weight",0.0f);
        double height = s.getFloat("height",0.0f);
        int age = s.getInt("theDate", 0);


        double results2 = 66+(13.7*weight)+(5*height)-(6.8*age);
        results.setText(""+results2);



    public void calculateFemale(){
        SharedPreferences s1 = getSharedPreferences("data", Context.MODE_PRIVATE);
        double fWeight = s1.getFloat("fWeight",0.0f);
        double fHeight = s1.getFloat("fHeight",0.0f);
        int Fage = s1.getInt("theDate", 0);
        double results3 = 655 + (9.6 * fWeight) + (1.8 * fHeight) - (4.7 *Fage)
                ;
        fResults.setText(""+results3);
        SharedPreferences.Editor editor = s1.edit();
        editor.putFloat("results", (float) results3);
        editor.commit();
    }

}

在一个文本视图中显示计算。

4 个答案:

答案 0 :(得分:1)

您要在调用两个函数之前打印结果。试试这个:

@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main__interface);

        results = (TextView)findViewById(R.id.results);

        calculateMale();
        calculateFemale();

        if(results.getText().toString().equals("0.0")) {
            results.setVisibility(View.INVISIBLE);
        }

    }

答案 1 :(得分:0)

在检查这两个方法之前,您正在调用这两个方法

calculateMale(); 计算女性();

in onCreate() {

//do this

        calculateMale();
        calculateFemale();

    //Then check the result to make results visible or invisible.

    results = (TextView)findViewById(R.id.results);
            if(results.getText().toString().equals("0.0")) {
                results.setVisibility(View.INVISIBLE);
            }

}

答案 2 :(得分:0)

您只需要在调用函数时使其清晰即可。实际发生的是,即使在计算所需的值之前,您也在检查textView的值。因此它抛出了0.0。 只需调用calculateMale();计算女性();在检查textView的值之前。

答案 3 :(得分:0)

从calculateMale()和calculateFemale()方法返回结果:

String calculateMale = calculateMale();
String calculateFemale = calculateFemale();
results = (TextView)findViewById(R.id.results);
String result = calculateMale.concat(calculateFemale);
if (result.length() >= 0) {
    results.setText(result);
} else {
    results.setVisibility(View.INVISIBLE);
}