gpt4 book ai didi

java - 将 SharePreference 字符串保存到 ListView

转载 作者:行者123 更新时间:2023-11-30 00:12:13 26 4
gpt4 key购买 nike

我有两个 Activity 。比方说“A”和“B”, Activity “A”有一个名为“获取”的按钮,每次单击后都会生成一个新字符串并一次显示一个。 Activity “A”还有一个按钮“发送”,它将生成的字符串发送到另一个 Activity “B”。当 Activity “B”接收到数据时,它必须将数据填充到 ListView 中。

这是简单的分步机器步骤:

In Activity "A"
1 - Generate 1 string by pressing the generate button
2 - text will be displayed in textView
3 - "send" button will send the text from textView to another activity "B" ( I'm using sharedPreference)

In Activity "B"
4 - receive the data sent by Activity "A" ( I'm using sharedPreference)
5 - populate string into a listview
6 - go to step 1 again.

我的问题是,每当我单击发送按钮时,它都会将字符串发送到 Activity “B”,但是当我再次执行相同的任务时,它只会填充最后生成的字符串。换句话说,我的代码只填充一个字符串。

到目前为止,我已尝试使用以下代码,如有任何帮助,我们将不胜感激。

@Override
public void onClick(View view) {


switch(view.getId()) {
case R.id.generateButton:
generateString();
break;

case R.id.send:

//displayText is a textView
String text = displayText.getText().toString();

// data sharing using sharedPref
SharedPreferences.Editor editor = getApplicationContext().getSharedPreferences("lado", MODE_PRIVATE).edit();
editor.putString("mug",text);
editor.apply();
break;


}

---------

Activity B

ListView textList = (ListView) findViewById(R.id.list);

SharedPreferences prefs = getSharedPreferences("lado", MODE_PRIVATE);
final String text = prefs.getString("mug", "No name defined");

String[] list = new String[]{name};


// Create a List from String Array elements
final List<String> fav_list = new ArrayList<>(Arrays.asList(list));



ArrayAdapter<String> adapter = new ArrayAdapter<>(this,
android.R.layout.simple_list_item_1, android.R.id.text1,list);

// Assign adapter to ListView
textList.setAdapter(adapter);

最佳答案

我不会为此使用共享首选项,而只是将列表作为 A Activity 的 Intent 中的额外项传递。像这样:

List<String> list = new ArrayList<String>();
list.add("hello");
list.add("good");
list.add("bye");
JSONArray array = new JSONArray(list);
Intent goToNextActivity = new Intent(getApplicationContext(), YourActivity.class);
goToNextActivity.putExtra("words", array.toString());
startActivity(goToNextActivity);

然后在 B Activity 中您可以访问此数据:

String words = getIntent().getStringExtra("words");
JSONArray array = new JSONArray(words);

关于java - 将 SharePreference 字符串保存到 ListView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47973805/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com