【发布时间】:2020-03-12 18:42:31
【问题描述】:
为了清楚起见,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>
【问题讨论】:
标签: java android list file listview