我使用list
创建了RecyclerView
个项目。我基本上遵循this教程,这符合我的初始要求。我的最后一项活动是:
public class PlacesActivity extends AppCompatActivity {
private GeoDataClient mGeoDataClient;
//a list to store all the products
List<PlaceSaved> placesList;
//the recyclerview
RecyclerView recyclerView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.places_layout);
//getting the recyclerview from xml
recyclerView = (RecyclerView) findViewById(R.id.my_recycler_view);
recyclerView.setHasFixedSize(true);
recyclerView.setLayoutManager(new LinearLayoutManager(this));
//initializing the productlist
placesList = new ArrayList<>();
//adding some items to our list
placesList.add(
new PlaceSaved(
1,
"Victoria Memorial, Kolkata",
"22.5448, 88.3426",
R.drawable.property_image_3
));
placesList.add(
new PlaceSaved(
1,
"Tower of London, London",
"51.5081, 0.0759",
R.drawable.property_image_3
));
placesList.add(
new PlaceSaved(
1,
"Uppsala Castle, Sweden",
"59.8533, 17.6356",
R.drawable.property_image_3
));
//creating recyclerview adapter
PlacesAdapter adapter = new PlacesAdapter(this, placesList);
//setting adapter to recyclerview
recyclerView.setAdapter(adapter);
RecyclerView.ItemAnimator itemAnimator = new DefaultItemAnimator();
itemAnimator.setAddDuration(1000);
itemAnimator.setRemoveDuration(1000);
recyclerView.setItemAnimator(itemAnimator);
}
}
这适用于初始学习(因为这是我在java中的第一个项目的一部分),但问题是列表是硬编码的。我希望最终用户可以编辑和管理此列表(他应该能够编辑/保存/添加/删除等)。
我搜索了谷歌获得2个选项:
SharedPreference
SQlite
数据库通过Gson
虽然没有硬编码的数组大小限制,但我不希望用户创建超过20个这样的位置。
所以,我有两个问题要问:
SQLite
和sharedpreference
之间的效果更佳
此致
答案 0 :(得分:2)
共享首选项通常用于在应用程序设置中存储应用程序配置和用户首选项。对于较大的数据,您应该使用SQLite。
要访问SQLite,请使用支持库Room by Google,它基本上是对SQLite的抽象,方便开发人员使用。
请参阅这篇关于使用Room库的文章,希望它对您的案例有所帮助:https://medium.com/@ajaysaini.official/building-database-with-room-persistence-library-ecf7d0b8f3e9
答案 1 :(得分:1)
SQLite是解决方案......如果你想存储像列表这样的内容。 我认为以下链接包含创建项目所需的所有内容
<强> https://www.androidhive.info/2011/11/android-sqlite-database-tutorial/ 强>
答案 2 :(得分:0)
你应该使用Sqlite。
使用 Sqlite 存储相同类型的此数据列表。
https://developer.android.com/training/data-storage/sqlite.html
SharedPreference 适用于商店数据用户数据。
https://developer.android.com/reference/android/content/SharedPreferences.html
参考文献: