Я создаю приложение Android с обратной связью, и мне нужно сохранить входные данные, но общие настройки вызывают сбой, и внутреннее хранилище не работает
// Shared Preferences Code // Crashes
final String radioValues =
((RadioButton)findViewById(rGrop.getCheckedRadioButtonId()))
.getText().toString();
final String nameValue = Ename.getText().toString();
final String cityValue = Ecity.getText().toString();
final String phoneNum = Ephone.getText().toString();
final String comments = ans.getText().toString();
final float rbarValue = rBar.getNumStars();
final float rbarValue2 = rBar2.getNumStars();
final float rbarValue3 = rBar3.getNumStars();
SharedPreferences settings = getApplicationContext().getSharedPreferences("Visitors Data",MODE_PRIVATE );
SharedPreferences.Editor editor = settings.edit();
editor.putString("Visitor Name: ",nameValue);
editor.putString("Visitor City: ",cityValue);
editor.putString("visitor Phone Number: ",phoneNum);
editor.putString("Radio Group Choice: ",radioValues);
editor.putString("Comments: ",comments );
editor.putFloat("rating bar : ", rbarValue);
editor.putFloat("rating bar 2: ", rbarValue2);
editor.putFloat("rating bar 3: ", rbarValue3);
// save changes in SharedPreferences
editor.apply();
, а следующее - Внутреннее.Код хранения
try{
FileOutputStream fileout=openFileOutput("EnginesTechDATA.txt", MODE_PRIVATE);
OutputStreamWriter outputWriter=new OutputStreamWriter(fileout);
outputWriter.write(Ecity.getText().toString());
outputWriter.write(Ename.getText().toString());
outputWriter.write(Ephone.getText().toString());
outputWriter.write(ans.getText().toString());
outputWriter.write(rBar.getNumStars());
outputWriter.write(rBar2.getNumStars());
outputWriter.write(rBar3.getNumStars());
final String radioValues =
((RadioButton)findViewById(rGrop.getCheckedRadioButtonId()))
.getText().toString();
outputWriter.write(radioValues);
outputWriter.close(); } catch (Exception e) {
e.printStackTrace(); }
Я надеюсь, что кто-то может помочь, мне нужно сохранить эти данные любым способом, и они понадобятся мне к завтрашнему дню
Это ошибки
02-12 12: 58: 25.170 10593-10593 /?E / CfgFilePolicy: **** ОШИБКА: env CUST_POLICY_DIRS не задано, используйте значение по умолчанию 02-12 12: 58: 38.510 10593-10593 / com.example.etq E / AndroidRuntime: ОСНОВНОЕ ИСКЛЮЧЕНИЕ: основной процесс: com.example.etq,PID: 10593 java.lang.NullPointerException: попытка вызвать виртуальный метод 'java.lang.CharSequence android.widget.RadioButton.getText ()' для ссылки на пустой объект в com.example.etq.MainActivity $ 1.onClick (MainActivity.java): 154) на android.view.View.performClick (View.java:4792) на android.view.View $ PerformClick.run (View.java:19938) на android.os.Handler.handleCallback (Handler.java:739)на android.os.Handler.dispatchMessage (Handler.java:95) на android.os.Looper.loop (Looper.java:135) на android.app.ActivityThread.main (ActivityThread.java:5601) на java.lang.refle.Method.invoke (собственный метод) на java.lang.reflect.Method.invoke (Method.java:372) на com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run (ZygoteInit.java:964) на com.android.internal.os.ZygoteInit.main (ZygoteInit.java:759)
Код группы радио XML
<RadioGroup
android:id="@+id/Rgrp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal"
>
<RadioButton
android:id="@+id/rBtn1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:layout_gravity="end"
android:fontFamily="@font/lalezar"
/>
<RadioButton
android:id="@+id/rBtn2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:fontFamily="@font/lalezar"
/>
<RadioButton
android:id="@+id/rBtn3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:fontFamily="@font/lalezar"
/>
</RadioGroup>
и это строка в файле Java
final RadioGroup rGrop = findViewById(R.id.Rgrp);