繁体   English   中英

如何将数据从活动传递到适配器?

[英]how to pass data from activity to adapter?

我有 2 个活动。 Activity A包含recyclerview,Activity B准备将Arraylist数据传递给Acrivity A中的recyclerview。

我的适配器是这样的。

public MainAdapter(MainActivity context,ArrayList<MainData> list) {
    this.context = context;
    this.list = list;
}

和元数据。

public MainData(String tv_name, String tv_content) {
    this.tv_name = tv_name;
    this.tv_content = tv_content;
}

活动 A(接收 arraylist 数据):

   recyclerView = (RecyclerView) findViewById(R.id.rv);
    linearLayoutManager = new LinearLayoutManager(this);
    recyclerView.setLayoutManager(linearLayoutManager);

    list = new ArrayList<>();

    list = (ArrayList<MainData>)getIntent().getSerializableExtra("key");

    adapter = new MainAdapter(this,list);
    recyclerView.setAdapter(adapter);

A和通过Arraylist的Activity B:

 Button button = (Button) findViewById(R.id.button);
    button.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
        Intent intent = new Intent(upload.this, MainActivity.class);

            ArrayList<MainData> list = new ArrayList<MainData>();

            EditText edit = (EditText) findViewById(R.id.edittext_name);
            String tv_name = edit.getText().toString();

            EditText edit_main = (EditText) findViewById(R.id.edittext_main);
            String tv_content = edit_main.getText().toString();

            list.add(new MainData(tv_name,tv_content));

            intent.putExtra("key", list);
            startActivity(intent);

        }
    });

它抛出运行时异常。

您提供的上下文不完整,请查看 Android 指南。 如果您需要在活动之间传输数据,请查看本文在此输入链接描述

您应该使用 Intent extras 将数组列表从 ActivityB 传递到ActivityA ,并且在ActivityA中您必须将列表传递给适配器,以便它在 recyclerView 上设置数据。

您不应该直接将数据从ActivityB传递到AdapterA的适配器

这可能会有所帮助: https://developer.android.com/reference/android/content/Intent

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM