我对java编码不是很熟悉,但我想创建自己的应用程序。
我想使用SharedPreferences
在不同的活动/类中存储一些值,如多个教程中所示(以及此站点上的问题)但是当我尝试在另一个类中的另一个活动中读取它们时我得到像2131361821这样的随机数字。
用户必须填写ID为textview
的{{1}}字段,以便通过GetWind类获得1000英尺的风向。
如果我在direction_1000
中将此值存储为int
,则一切正常但如果我想将此值传递给类SharedPreference
并通过{{1}显示在那里}} InputNavData
和int
PHI
我得到了这个奇怪的价值。
有人可以帮我解决这个问题吗?对于凌乱的代码和问题提前抱歉,但正如我所说,这对我来说都很新鲜。
MainActivity
String
GetWind
phi
InputNavData
package com.example.navigationcalculator;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
public class MainActivity extends Activity {
public final static String EXTRA_MESSAGE = "com.example.navigationcalculator.MESSAGE";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
/** Called when the user clicks the Agree button */
public void wind_input(View view) {
Intent intent = new Intent(this, GetWind.class);
startActivity(intent);
}
/** Called when the user clicks the Input Navigation Data button */
public void input_nav_data(View view) {
Intent intent = new Intent(this, InputNavData.class);
startActivity(intent);
}
/** Called when the user clicks the Calculate Data button */
public void calculate_data(View view) {
Intent intent = new Intent(this, CalculateData.class);
startActivity(intent);
}
}
答案 0 :(得分:0)
查看您的input_nav_data
和calculate_data
方法。
这是因为流程应该是:
你在做什么
calculate_data
public void calculate_data(View view) {
Intent intent = new Intent(this, CalculateData.class);
sharedpreferences = getSharedPreferences(PREFS_NAME, Context.MODE_PRIVATE); // Read the actual altitude
EditText alt = (EditText) findViewById(R.id.altitude);
int altitude = Integer.parseInt(alt.getText().toString());
SharedPreferences.Editor editor = sharedpreferences.edit();
editor.putInt(altitude_static_string, altitude);
editor.commit();
int shared_altitude = sharedpreferences.getInt(PREFS_NAME, altitude);
String SALT = String.valueOf(shared_altitude);
Log.d("altitude", SALT);
int PHI = sharedpreferences.getInt(PREFS_NAME, direction_1000);
String phi = String.valueOf(PHI);
Log.d("dir 1000 in inputnavdata", phi);
}
startActivity(intent);