我是创建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();
}
}
(我已经从网站修改了实用程序代码以包含写文件方法。)
但我的计划无效。我不确定写入文本文件的代码是否错误。 另外,我不知道在哪里访问文本文件。
我是写文本文件的新手。希望你能指导我。谢谢。
答案 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");