Чтобы было понятно, ma.getData () возвращает строку из другого действия, которое я хочу сохранить в общих настройках. Поэтому каждый раз, когда я отправляю строку (из другого действия) в следующее действие, я сохраняю ее с помощью saveData () (эта функция вызывается при нажатии кнопки) .. поэтому у меня много строк для отображения в виде списка использование еще двух функций (loadData () и updateViews ()). Эти функции вызываются при запуске операции, поэтому для загрузки в виде списка сохраненных строк.
Проблема заключается в том, что только последняя строка, которую я получаю от другого действия, отображается в listView.
Что я делаю неправильно?
public class activity_profile extends AppCompatActivity {
MainActivity ma = new MainActivity();
private static ArrayList<String> addArray;
ListView show;
private Button btn;
private ArrayAdapter<String> adapter;
public static final String SHARED_PREFS = "sharedPrefs";
public static final String TEXT = "text";
private String text;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_profile);
mEditText = (TextView) findViewById(R.id.hist) ;
show = (ListView) findViewById(R.id.listview1);
namefield = (EditText) findViewById(R.id.username);
namelabel = (TextView) findViewById(R.id.namelabel);
btn = (Button)findViewById(R.id.Update_btn);
loadData();
updateViews();
}
public void saveData() {
SharedPreferences sharedPreferences = getSharedPreferences(SHARED_PREFS, MODE_PRIVATE);
SharedPreferences.Editor editor = sharedPreferences.edit();
editor.putString(TEXT, ma.getData());
editor.apply();
Toast.makeText(this, "Data saved", Toast.LENGTH_SHORT).show();
}
public void loadData() {
SharedPreferences sharedPreferences = getSharedPreferences(SHARED_PREFS, MODE_PRIVATE);
text = sharedPreferences.getString(TEXT, "");
}
public void updateViews() {
adapter = new ArrayAdapter<String>(getApplicationContext(), android.R.layout.simple_spinner_item, Collections.singletonList(text));
show.setAdapter(adapter);
//mEditText.setText(sb.toString());
adapter.notifyDataSetChanged();
}
, и это мой xml для представления списка
<RelativeLayout
android:layout_width="398dp"
android:layout_height="204dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/RecipeHistoryLabel">
<ListView
android:id="@+id/listview1"
android:layout_width="386dp"
android:layout_height="wrap_content" />
</RelativeLayout>