保存列表项

时间:2018-03-05 09:55:18

标签: android android-recyclerview android-database

我使用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个选项:

  1. SharedPreference
  2. SQlite数据库通过Gson
  3. 虽然没有硬编码的数组大小限制,但我不希望用户创建超过20个这样的位置。

    所以,我有两个问题要问:

    1. 对于此少量列表
    2. SQLitesharedpreference之间的效果更佳
    3. 我还没有找到有关创建/存储的任何教程/文档并检索数据库。你能告诉我一些方法吗?
    4. 此致

3 个答案:

答案 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)