我正在尝试将一些数据传递给另一个活动,但我需要在单击按钮时传递数据,但不启动新活动,当我有多个过去的数据时,启动新活动并查看所有内容我之前已经过去了。
此过程类似于购物车,添加产品,然后是另一个您看到购物车列表的活动。
我一直在尝试使用SharePrerences,但我只传递了一个数据。
final SharedPreferences mSettings = this.getSharedPreferences(PREFS_NAME, 0);
SharedPreferences.Editor editor = mSettings.edit();
editor.putString(NOMBRE_TAG, tvNotas.getText().toString());
editor.putString(PRECIO_TAG, pantalla.getText()+"");
editor.commit();
使用putExtra我认为它不起作用,因为我不知道我将传递多少数据
Intent intent = new Intent(this, NAME.class);
intent.putextra("SOMETHING","value");
startActivity(intent);
String data = getIntent().getExtras().getString("SOMETHING");
我不知道其他形式。
这个过程类似于
答案 0 :(得分:0)
当你使用共享偏好时每个"键"喜欢你的标签(NOMBRE_TAG,PRECIO_TAG) 将只保存一个项目。 这意味着,每次使用此键保存项目时,它将替换旧项目。
我推荐使用SQLITE数据库。
这里有一些如何开始的例子:
答案 1 :(得分:0)
您可以使用静态类或单例吗?这样,您可以从第一个活动中放入您想要的任何内容,并从第二个活动中检索它。唯一的缺点是它无法在应用程序重启后继续存在。
答案 2 :(得分:-1)
使用putParcelableArrayList
将所有数据作为数组列表传递---
@Override
public void onSaveInstanceState(final Bundle outState) {
outState.putParcelableArrayList("data", myData);
super.onSaveInstanceState(outState);
}
然后才能使用这个数据----
ArrayList<String> myData = new ArrayList<String>();
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState)
{
super.onCreateView(inflater, container, savedInstanceState);
if (savedInstanceState != null) {
try
{
myData = savedInstanceState.getParcelableArrayList("data");
}
}
myData.add(0, tvNotas.getText().toString());
myData.add(1, pantalla.getText()+"");
}