如何在android中保存值?

时间:2016-05-26 14:39:52

标签: java android

我是创建Android应用的新手。

我尝试使用在线指南创建温度转换应用。 (http://www.vogella.com/tutorials/Android/article.html#tutorialtemperature

我想知道是否可以存储我之前在步骤18.8中输入的值,然后在应用的另一页中以表格格式显示值。

如果有可能,您可以指导我如何存储值吗?

谢谢。

(我将澄清是否需要任何其他信息。)

编辑:

我打算将温度值(键入的)写入文本文件。

以下代码来自网站。

MainActivity.class

package com.vogella.android.temperatureconverter;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.EditText;
import android.widget.RadioButton;
import android.widget.Toast;

public class MainActivity extends Activity {
  private EditText text;

  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    text = (EditText) findViewById(R.id.inputValue);

  }

  // this method is called at button click because we assigned the name to       the
  // "OnClick" property of the button
  public void onClick(View view) {
    switch (view.getId()) {
    case R.id.button1:
      RadioButton celsiusButton = (RadioButton) findViewById(R.id.radio0);
      RadioButton fahrenheitButton = (RadioButton)           findViewById(R.id.radio1);
      if (text.getText().length() == 0) {
        Toast.makeText(this, "Please enter a valid number",
        Toast.LENGTH_LONG).show();
    return;
  }

  float inputValue = Float.parseFloat(text.getText().toString());
  if (celsiusButton.isChecked()) {
    text.setText(String
        .valueOf(ConverterUtil.convertFahrenheitToCelsius(inputValue)));
    celsiusButton.setChecked(false);
    fahrenheitButton.setChecked(true);
  } else {
    text.setText(String
        .valueOf(ConverterUtil.convertCelsiusToFahrenheit(inputValue)));
    fahrenheitButton.setChecked(false);
    celsiusButton.setChecked(true);
  }
  break;
    }
  }

} 

Utility.class的

package com.vogella.android.temperatureconverter;

public class ConverterUtil {
  // converts to celsius
  public static float convertFahrenheitToCelsius(float fahrenheit) {
    return ((fahrenheit - 32) * 5 / 9);
  }

  // converts to fahrenheit
  public static float convertCelsiusToFahrenheit(float celsius) {
    return ((celsius * 9) / 5) + 32;
  }
} 
public void writedata(String data) {
          //BufferedWriter out = null;

      try{

          FileOutputStream out = new FileOutputStream(new File("outputfile.txt"));
          out.write(ConverterUtil.convertFahrenheitToCelsius(inputValue.getBytes());
          out.close();  

            } 
}

(我已经从网站修改了实用程序代码以包含写文件方法。)

但我的计划无效。我不确定写入文本文件的代码是否错误。 另外,我不知道在哪里访问文本文件。

我是写文本文件的新手。希望你能指导我。谢谢。

2 个答案:

答案 0 :(得分:1)

要永久存储值,您可以将其存储在数据库支持的sqlite-database中,或者您可以使用inputstream将其写入设备的内存,或者您可以将其保存为共享首选项,但在您的情况下,您只需要用户传递输入而不保存它,这样你就可以将float放到用于调用活动的意图中,如下所示:

intent.putExtra("tag",value)

然后在下一个活动中通过调用

获得结果
getIntent().getFloatExtra("tag", float defaultValue);

其中"标记" =变量的键,默认值为"标记"时使用的值。关键不会有结果。

答案 1 :(得分:0)

您可以使用Intent将数据从一个活动发送到另一个活动。

Intent otherActivityIntent = new Intent(this,OtherActivity.class);
otherActivityIntent.putExtra("key","tempratureValue");
startActivity(otherActivityIntent);

在其他活动中:

onCreate()

中的

String temprature = getIntent().getStringExtra("key");