如何从另一个活动访问片段列表? [英] how to access list of fragment from another activity?

查看:160
本文介绍了如何从另一个活动访问片段列表?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个包含项目列表的片段。我想从另一个活动中访问该列表,该活动在用户输入编辑文本时添加列表中的项目并保存该项目。这个项目应该添加到片段列表中。我怎么能实现这个?如何从其他活动访问片段中创建的列表?

I have a fragment which has list of items. I want to access that list from another activity which adds items in list as user enters in edit text and saves the item. this item should get added in the list of fragment. How can I achieve this?? How can I access List created in the fragment from another activity?

片段

public class ItemFragment extends Fragment {

    RecyclerView recyclerView;

    IAdapter adapter;
    ArrayList<Expense> items;

    public ItemFragment() {
    }

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

    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.fragment_item_list, container, false);
        setHasOptionsMenu(true);
        Expense e = new Expense();

        recyclerView = (RecyclerView) view.findViewById(R.id.RecyclerView);
        ImageButton imageButton = (ImageButton) view.findViewById(R.id.imgbtn_fab);
        LinearLayoutManager llm = new LinearLayoutManager(this.getActivity());


        items=new ArrayList<>();
        recyclerView.setLayoutManager(llm);

        recyclerView.setHasFixedSize(true);

        initializeDataType1();
        adapter = new IAdapter(getActivity(),items);
        recyclerView.setAdapter(adapter);


        imageButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {

                Intent intent = new Intent(ItemFragment.this.getActivity(), Main2Activity.class);
                startActivity(intent);


            }
        });
        return view;
    }

    private void initializeDataType1() {

        items.add(new Expense("1000", "2000", 1));
        items.add(new Expense("2000", "5000", 1));
        items.add(new Expense("3000", "400", 2));
        items.add(new Expense("1000", "4000", 1));
        items.add(new Expense("3000", "3000", 2));
        items.add(new Expense("2000", "100", 1));
        items.add(new Expense("2000", "3333", 2));
        items.add(new Expense("3000", "shopping", 1));
        items.add(new Expense("1000", "food", 1));
        items.add(new Expense("1000", "food", 2));
        items.add(new Expense("2000", "drink", 1));
        items.add(new Expense("3000", "shopping", 2));
        items.add(new Expense("2000", "3333", 1));
        items.add(new Expense("3000", "shopping", 1));
        items.add(new Expense("1000", "food", 1));
        items.add(new Expense("1000", "food", 1));
        items.add(new Expense("2000", "drink", 1));
        items.add(new Expense("3000", "shopping", 1));
    }
}

活动

public class Main2Activity extends Activity {

    public Expense ex;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main2);

        final EditText amt=(EditText)findViewById(R.id.editText);
       final  EditText exp=(EditText)findViewById(R.id.editText2);
      final  EditText typ=(EditText)findViewById(R.id.typ);


        Button save=(Button)findViewById(R.id.addamt);


        save.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {

                String amount = amt.getText().toString();
                String expense = exp.getText().toString();
                int type=(Integer.parseInt(typ.getText().toString()));

                Toast.makeText(getApplicationContext(),
                        "Saved",
                        Toast.LENGTH_LONG).show();


            }
        });

    }
}

请帮助...

推荐答案

您可以使用片段列表的对象作为指针,并将此指针发送到Main2Activity。当片段再次可见时,只需刷新recyclerview即可。例如,像这样启动Main2Activity:

You can use object of fragment's list as pointer and send this pointer to Main2Activity. And when fragment is visible again just refresh recyclerview. For example start Main2Activity like this :

Intent intent = new Intent(context, Main2Activity.class);
Bundle bundle  = new Bundle();
bundle.putSerializable("list", items);
intent.putExtras(bundle);
context.startActivity(intent);

在你的onCreate()方法中接收这个列表指针并添加项目。完成活动并恢复片段后,只需刷新recyclerview。

And in your onCreate() method receive this list pointer and add items. After finishing activity and resuming fragment, just refresh recyclerview.

这篇关于如何从另一个活动访问片段列表?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆