活动之间的Android SharedReference

活动之间的Android SharedReference,android,sharedpreferences,Android,Sharedpreferences,您好,我对SharedReferences有问题,因为他希望将在EditText中输入的数据保留在变量中,然后在另一个活动中调用它们以使用该操作,但在整个过程中,我都有问题,只想输入代码1的最后一个活动的程序,2和3活动,他希望利用数据 -我把我的申请照了下来 第一项活动 SharedPreferences kalorie = PreferenceManager.getDefaultSharedPreferences(this); sharedPreferences.Edit

您好,我对SharedReferences有问题,因为他希望将在EditText中输入的数据保留在变量中,然后在另一个活动中调用它们以使用该操作,但在整个过程中,我都有问题,只想输入代码1的最后一个活动的程序,2和3活动,他希望利用数据

-我把我的申请照了下来

第一项活动

   SharedPreferences kalorie = PreferenceManager.getDefaultSharedPreferences(this);
       sharedPreferences.Editor editor = kalorie.edit();
        editor.putString("waga", waga.getText().toString());
        editor.putString("wiek", wiek.getText().toString());
        editor.putString("wzrost",wzrost.getText().toString());
                editor.commit();
第二项活动

    SharedPreferences TEA = PreferenceManager.getDefaultSharedPreferences(this);
                   SharedPreferences.Editor editor1 = TEA.edit();
                   editor1.putString("trening", trening.getText().toString());
                   editor1.putString("aeroby", aeroby.getText().toString());
                   editor.commit();
此活动中的第3个活动希望利用以前输入的数据进行整数文本编辑,然后执行这些操作

 SharedPreferences kalorie = PreferenceManager.getDefaultSharedPreferences(this);

int wagaValue = Integer.valueOf(kalorie.getString("waga", "0"));
int wiekValue = Integer.valueOf(kalorie.getString("wiek", "0"));
int wzrostValue = Integer.valueOf(kalorie.getString("wzrost", "0"));
int kcalwynik = (int) (((( wagaValue * 9.99 ) + ( wzrostValue * 6.25 )) - ( wiekValue * 4.92 ))+5);

txtWynik.setText(kcalwynik);

int redValue = Integer.valueOf(etreduk.getText().toString() );


SharedPreferences TEA = PreferenceManager.getDefaultSharedPreferences(this);

int treningValue = Integer.valueOf(TEA.getString("trening", "0"));
int aerobyValue = Integer.valueOf(TEA.getString("aeroby", "0"));

int kcalwynik1 = treningValue+aerobyValue;


int redukcja = kcalwynik + kcalwynik1;
int red1 = redukcja - redValue;

 String returnMsg = red1 + " kcal";
 txtWynik1.setText(returnMsg);
当弹出菜单时,选择“活动三偏差”程序已停止

感谢您的更正和帮助

1活动(kalorie-英语卡路里)和2活动(TEA)是通过版面中的EditText字段从用户处提取数据的活动,一个活动对一个版面,在这两个活动结束时,希望将检索到的数据发送到三个活动,以执行一些数学运算,并在TextView中显示结果


这两个活动TEA还没有RadioButton,这取决于选择变量x的方式,x取了该值,但不知道如何保存SharedReferences radiobuttons

这是我的sharedPref类,因为@Rajeev建议您可以编写一个类来处理所有与pref.相关的代码


变量kalorie和TEA的声明是什么?也许您使用了错误的SharedReference。为什么不使用一个单独的类来封装SharedReference,并负责所有的读写操作?检查您提交的SharedReferences是否与您尝试读取的SharedReferences相同。有一个名为共享偏好的单一课程肯定会让这更容易。1个活动(kalorie-英语卡路里)和第2个活动(TEA)我一开始在youtube上的视频中做过,但putInt没有起作用-