我试图传递一个字符串catcode(它是各个类别中的选定类别),它在class1中的一个函数中的2个循环中定义到另一个class2,但不知道如何去做。任何线索? 这是我的代码: 在Class1中:
public void onClick(final View view) {
switch (view.getId()) {
...cases..
case R.id.button_done:
...case stuff...
Intent intent = new Intent();
if(abcNews != null && abcNews.size() > 0){
for(CategoryCheckableRow rwa : abcNews){
if(rwa.isSelected()){
String catCode = rwa.getCategoryName();
intent.putExtra("cat_name", catCode);
Log.d("newsdash", "category name is"+catCode);
break;
}
}
}
if(cnnNews != null && cnnNews.size() > 0){
for(CategoryCheckableRow rwa : cnnNews){
if(rwa.isSelected()){
String catCode = rwa.getCategoryName();
intent.putExtra("cat_name", catCode);
break;
}
}
}
如此代码中所示,在这两个循环中,我定义了catCode,我需要将其传递给类2,这样: 等级2:
public View onCreateView(final LayoutInflater inflater, final ViewGroup container, final Bundle savedInstanceState) {
frontpageHeader = view.findViewById(R.id.frontpage_header);
((TextView) frontpageHeader.findViewById(R.id.header_title)).setText(getActivity().getString(catCode));
frontpageHeader.setOnClickListener(this);
}
PS:请注意我一次只使用一个类别,比如说选择了abnews中的catCode或者选择了cnnNews并且识别出该字符串并且需要将其传递给另一个类class2,在那里它更新了基于标题的类选定的文字。
答案 0 :(得分:0)
你已经把catCode放在了你的意图中,但我认为你的问题是你的Class2是一个片段而不是一个活动,所以假设你在代码中创建你的片段,你必须在你正在开始的活动中放置这样的东西
Bundle extras = getIntent().getExtras();
fragment.setArguments(extras);
在你的片段中
Bundle bundle = getArguments();
String catCode = bundle.getString("cat_name");