将数据从IntentService发送到Fragment

时间:2017-05-27 09:01:53

标签: android android-fragments android-service android-bundle

当我在这个question中尝试使用BroadCastReciever时,我尝试在我的日志中使用参数传递数据也没关系。

Bundle bundle = new Bundle();
ArticleDetailFragment fragobj = new ArticleDetailFragment().newInstance2(jsonString);
fragobj.setArguments(bundle);
Log.i(TAG, "onHandleIntent: " + bundle);

但我收到了null:

public static ArticleDetailFragment newInstance2(String item) {
        Bundle arguments = new Bundle();
        arguments.putString("edttext", item);
        ArticleDetailFragment fragment = new ArticleDetailFragment();
        fragment.setArguments(arguments);
        return fragment;
    }

在我的onCreateView()中:

Log.i(TAG, "onCreateViewBundle: " + getArguments().getString("edttext"));

最好的方法是什么?

1 个答案:

答案 0 :(得分:0)

这是因为您首先使用正确的数据设置正确的片段参数,然后在newInstance2之外覆盖它。

CC = g++
CFLAGS = -std=c++11

test: main.o hung.o
     $(CC) -o test main.o hung.o

hung.o: Hungarian.cpp Hungarian.h
     $(CC) -c Hungarian.cpp -o hung.o

main.o: testMain.cpp Hungarian.h
     $(CC) $(CFLAGS) -c testMain.cpp -o main.o

clean:
    -rm main.o hung.o

应该是

g++ TestTwo.cpp -o test `pkg-config opencv --libs`

另一个答案是删除Bundle bundle = new Bundle(); ArticleDetailFragment fragobj = new ArticleDetailFragment().newInstance2(jsonString); fragobj.setArguments(bundle); // <- here you override the arguments that were set inside newInstance with a bundle that has no data in it Log.i(TAG, "onHandleIntent: " + bundle); 关键字。他是对的!