片段并没有抓住我的IntentData

时间:2018-03-30 23:01:30

标签: android if-statement android-intent

我有第一个片段,我将数据发送到另一个片段,具体取决于他们按下哪个按钮

mButton1.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            Intent intent = new Intent(getActivity(), AddItemsActivity1.class);
            intent.putExtra("ToButton", 1);
            ((AddItemsActivity1)getActivity()).ToNextPage(view);
        }
    });

mButton2.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Intent intent = new Intent(getActivity(), AddItemsActivity1.class);
                intent.putExtra("ToButton", 2);
                ((AddItemsActivity1)getActivity()).ToNextPage(view);
            }
        });
  

按钮正在向其自己的片段活动发送数据。

然后我在我的其他片段中检索我的数据,该片段也在AddItemsActivity1活动中

int toButton = getActivity().getIntent().getIntExtra("ToButton", 0);

然后根据它获得的值,它会添加到我的数据库中的某个孩子身上。

if (toButton == 1) {
                    String key = mDairyDataBase.push().getKey();
                    HashMap<String, String> dataMap = new HashMap<>();
                    dataMap.put("Name", item);
                    dataMap.put("Key", key);
                    mDairyDataBase.child(key).setValue(dataMap);
}

 else if (toButton == 2){
                String key = mFruitsDataBase.push().getKey();
                HashMap<String, String> datamap = new HashMap<>();
                datamap.put("Name", item);
                datamap.put("Key", key);
                mFruitsDataBase.child(key).setValue(datamap);
}

我的问题是它没有返回值,因此它永远不会添加到数据库中。当我将toButton的默认值更改为1时,它会将其添加到mDairyDatabase,同样会将其添加到另一个。

1 个答案:

答案 0 :(得分:0)

感谢Ruben我只是设置一个静态变量而不是使用Intent传递数据然后将我的按钮更改为

mButton1.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            toButton = 1;
            ((AddItemsActivity1)getActivity()).ToNextPage(view);
        }
    });