簡體   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