如何将用户添加和删除的项目保存到RecyclerView?安卓

杜桑·迪米特里耶维奇(Dusan Dimitrijevic)

我已经开始进行材料设计,并且是第一次见面。我需要一些帮助。从RecyclerView添加和删除项目正在工作,但是我想保存该条件。谢谢你。

这是我的代码:

public class MainActivity extends BaseActivity {

//int containing the duration of the animation run when items are added or removed from the RecyclerView
public static final int ANIMATION_DURATION = 2000;
//edit text letting the user type item name to be added to the recylcerview
private EditText mInput;
//recyclerview showing all items added by the user
private RecyclerView mRecyclerView;
private AdapterRecyclerAnimators mAdapter;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    initViews();


}

private void initViews(){
    mInput = (EditText) findViewById(R.id.text_input);
    mRecyclerView = (RecyclerView) findViewById(R.id.recyclerAnimatedItems);
    mAdapter = new AdapterRecyclerAnimators(this);
    //set an animator on the RecyclerView that works only when items are added or removed
    mRecyclerView.setItemAnimator(new SlideInLeftAnimator());
    mRecyclerView.getItemAnimator().setAddDuration(ANIMATION_DURATION);
    mRecyclerView.getItemAnimator().setRemoveDuration(ANIMATION_DURATION);
    mRecyclerView.setAdapter(mAdapter);
    mRecyclerView.setLayoutManager(new LinearLayoutManager(this));
}

public void addItem(View view) {
    //check if the EditText has valid contents
    if (Util.hasValidContents(mInput)) {
        mAdapter.addItem(mInput.getText().toString());
    }
}

@Override
protected int getLayoutResourceId() {
    return R.layout.activity_main;
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.menu_main, menu);
    return true;
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    // Handle action bar item clicks here. The action bar will
    // automatically handle clicks on the Home/Up button, so long
    // as you specify a parent activity in AndroidManifest.xml.
    int id = item.getItemId();

    //noinspection SimplifiableIfStatement
    if (id == R.id.action_settings) {
        return true;
    }

    return super.onOptionsItemSelected(item);
}
}

这是一个适配器:

    public class AdapterRecyclerAnimators extends RecyclerView.Adapter<AdapterRecyclerAnimators.Holder> {
    private ArrayList<String> mListData = new ArrayList<>();
    private LayoutInflater mLayoutInflater;


    public AdapterRecyclerAnimators(Context context) {
        mLayoutInflater = LayoutInflater.from(context);
    }


    @Override
    public Holder onCreateViewHolder(ViewGroup parent, int viewType) {
        View row = mLayoutInflater.inflate(R.layout.custom_row_item, parent, false);
        Holder holder = new Holder(row);
        return holder;
    }

    @Override
    public void onBindViewHolder(Holder holder, final int position) {
        String data = mListData.get(position);
        holder.textDataItem.setText(data);
        holder.buttonDelete.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                removeItem(position);
            }
        });
    }

    public void addItem(String item) {
        mListData.add(item);
        notifyItemInserted(mListData.size());
    }

    public void removeItem(String item) {
        int position = mListData.indexOf(item);
        if (position != -1) {
            mListData.remove(item);
            notifyItemRemoved(position);
        }
    }

    public void removeItem(int position) {
        mListData.remove(position);
        notifyItemRemoved(position);
    }

    @Override
    public int getItemCount() {
        return mListData.size();
    }

    public static class Holder extends RecyclerView.ViewHolder {
        TextView textDataItem;
        ImageButton buttonDelete;

        public Holder(View itemView) {
            super(itemView);
            textDataItem = (TextView) itemView.findViewById(R.id.text_item);
            buttonDelete = (ImageButton) itemView.findViewById(R.id.button_delete);

        }
    }

}
罗宾·迪克霍夫(Robin Dijkhof)

要保存您的项目,请在您的活动中使用此命令:

@Override
public void onSaveInstanceState(Bundle outState) {
    outState.putStringArrayList("items", itemList);
}

在您的OnCreate中:

if(savedInstanceState != null){
    ArrayList<String> items = savedInstanceState.getStringArrayList("items");
    itemList.addAll(items);
    adapter.notifyDataSetChanged();
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何将用户输入保存到html和js中的变量中

来自分类Dev

如何将用户名和电子邮件保存到 Firebase

来自分类Dev

如何将用户名等信息保存到设备?

来自分类Dev

如何将用户输入保存到本地存储?

来自分类Dev

如何将用户上传的图像保存到mySQL

来自分类Dev

如何将用户输入从表单保存到JavaScript对象

来自分类Dev

如何将用户输入的文本保存到UITextView中

来自分类Dev

如何从安卓应用打开“保存到安卓支付”网址?

来自分类Dev

如何从 recyclerView 和 sqlite 数据库中删除 cardview?(科特林 - 安卓)

来自分类Dev

SAS:如何将用户定义的宏保存到用户定义的库

来自分类Dev

安卓 关闭应用程序后如何保存用户名和密码?

来自分类Dev

在Spark协作过滤RDD中将用户和项目功能保存到HDFS

来自分类Dev

如何将用户的输入保存到单独的文本文件中

来自分类Dev

如何将用户从 javascript 弹出表单输入的内容保存到 php 变量中?

来自分类Dev

如何将用户的额外信息添加到 firebase 项目中

来自分类Dev

保存添加和删除的用户

来自分类Dev

如何从 RecyclerView 中删除或移除 CardView?安卓工作室

来自分类Dev

firebase / firestore将用户保存到集合

来自分类Dev

安卓:创建Recyclerview

来自分类Dev

安卓 单击RecyclerView中的项目时加载意图

来自分类Dev

如何将用户标识保存在nsuserdefaults中?

来自分类Dev

如何将用户参考保存在自己的记录中

来自分类Dev

如何显示文字和按钮?(安卓)

来自分类Dev

如何将用户添加到资格

来自分类Dev

如何将用户添加到Ubuntu 12.04

来自分类Dev

如何将用户添加到Azure虚拟网络

来自分类常见问题

如何将用户添加到Kubernetes(kubectl)?

来自分类Dev

如何将用户添加到Websocket聊天

来自分类Dev

如何将用户定义的对象添加到LinkedList?

Related 相关文章

  1. 1

    如何将用户输入保存到html和js中的变量中

  2. 2

    如何将用户名和电子邮件保存到 Firebase

  3. 3

    如何将用户名等信息保存到设备?

  4. 4

    如何将用户输入保存到本地存储?

  5. 5

    如何将用户上传的图像保存到mySQL

  6. 6

    如何将用户输入从表单保存到JavaScript对象

  7. 7

    如何将用户输入的文本保存到UITextView中

  8. 8

    如何从安卓应用打开“保存到安卓支付”网址?

  9. 9

    如何从 recyclerView 和 sqlite 数据库中删除 cardview?(科特林 - 安卓)

  10. 10

    SAS:如何将用户定义的宏保存到用户定义的库

  11. 11

    安卓 关闭应用程序后如何保存用户名和密码?

  12. 12

    在Spark协作过滤RDD中将用户和项目功能保存到HDFS

  13. 13

    如何将用户的输入保存到单独的文本文件中

  14. 14

    如何将用户从 javascript 弹出表单输入的内容保存到 php 变量中?

  15. 15

    如何将用户的额外信息添加到 firebase 项目中

  16. 16

    保存添加和删除的用户

  17. 17

    如何从 RecyclerView 中删除或移除 CardView?安卓工作室

  18. 18

    firebase / firestore将用户保存到集合

  19. 19

    安卓:创建Recyclerview

  20. 20

    安卓 单击RecyclerView中的项目时加载意图

  21. 21

    如何将用户标识保存在nsuserdefaults中?

  22. 22

    如何将用户参考保存在自己的记录中

  23. 23

    如何显示文字和按钮?(安卓)

  24. 24

    如何将用户添加到资格

  25. 25

    如何将用户添加到Ubuntu 12.04

  26. 26

    如何将用户添加到Azure虚拟网络

  27. 27

    如何将用户添加到Kubernetes(kubectl)?

  28. 28

    如何将用户添加到Websocket聊天

  29. 29

    如何将用户定义的对象添加到LinkedList?

热门标签

归档