Android getActivity().setTitle()从ArrayList中的错误对象获取字符串字段
我希望将此片段活动中的标题栏设置为HelpItem的description字段 在第10行,我使用表示帮助项描述的字符串设置活动的标题 我没有在第9行获取检索到的帮助项的描述,而是获取下一个帮助项的描述 即,在包含五个HelpItem对象的ArrayList中,helpDescriptions为“aaa”、“bbb”、“ccc”、“ddd”、“eee”,单击列表中的“bbb” 列表显示“bbb”及其相关信息文本。标题设置为“ccc” 在第19行,对Android getActivity().setTitle()从ArrayList中的错误对象获取字符串字段,android,arraylist,Android,Arraylist,我希望将此片段活动中的标题栏设置为HelpItem的description字段 在第10行,我使用表示帮助项描述的字符串设置活动的标题 我没有在第9行获取检索到的帮助项的描述,而是获取下一个帮助项的描述 即,在包含五个HelpItem对象的ArrayList中,helpDescriptions为“aaa”、“bbb”、“ccc”、“ddd”、“eee”,单击列表中的“bbb” 列表显示“bbb”及其相关信息文本。标题设置为“ccc” 在第19行,对helpItem.getHelpDescript
helpItem.getHelpDescription()
的相同调用返回“bbb”对象的描述字段
当通过ViewPager在列表中移动时,列表中的下一个对象具有相同的问题,直到我到达列表的末尾
此时将显示正确的helpDescription字段。我还可以移回列表的开头,它将显示正确的
helpDescription,但当我再次在列表中前后移动时,它将丢失
知道为什么会这样吗?谢谢
public class HelpFragment extends Fragment {
private HelpItem helpItem;
private TextView mHelpDetails;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setHasOptionsMenu(true);
UUID helpItemId = (UUID) getArguments().getSerializable(EXTRA_HELP_ITEM_ID);
helpItem = HelpList.get(getActivity()).getHelpItem(helpItemId);
getActivity().setTitle(helpItem.getHelpDescription());
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup parent, Bundle savedInstanceState) {
View userView = inflater.inflate(R.layout.fragment_help_item, parent, false);
mHelpDetails = (TextView) userView.findViewById(R.id.help_details);
String displayInfo = "";
if ((helpItem.getHelpDescription() != null) &&
(helpItem.getHelpInformation() != null)) {
displayInfo = helpItem.getHelpDescription() + "\n\n\n" +
helpItem.getHelpInformation();
mHelpDetails.setText(displayInfo);
Log.d(TAG, "3 " + helpItem.getHelpDescription() + " "
+ helpItem.getHelpInformation());
}
return userView;
}
}
公共类HelpListItemPageActivity扩展了FragmentActivity{
私有视图寻呼机mViewPager;
私人ArrayList mHelpList;
@凌驾
创建时的公共void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
mViewPager=新的ViewPager(此);
mViewPager.setId(R.id.viewPager);
setContentView(mViewPager);
mHelpList=HelpList.get(this.getHelpList();
FragmentManager fragManager=getSupportFragmentManager();
mViewPager.setAdapter(新FragmentStatePagerAdapter(fragManager){
@凌驾
public int getCount(){
返回mHelpList.size();
}
@凌驾
公共片段getItem(int位置){
HelpItem hItem=mHelpList.get(位置);
返回HelpFragment.newInstance(hItem.getId());
}
});
UUID helpItemId=(UUID)getIntent().getSerializableExtra(HelpFragment.EXTRA_HELP_ITEM_ID);
对于(int i=0;i
你应该发布相关的类和方法。不要把整个代码放进去,只要把相关的代码放进去就行了。
public class HelpItem {
private UUID mId;
private String helpDescription;
private String helpInformation;
public HelpItem(String hDesc, String hInfo) {
mId = UUID.randomUUID();
helpDescription = hDesc;
helpInformation = hInfo;
}
public UUID getId() {
return mId;
}
public void setId(UUID id) {
mId = id;
}
@Override
public String toString() {
return helpDescription;
}
public String getHelpDescription() {
return helpDescription;
}
public void setHelpDescription(String hDescription) {
this.helpDescription = hDescription;
}
public String getHelpInformation() {
return helpInformation;
}
public void setHelpInformation(String hInformation) {
this.helpInformation = hInformation;
}
}
public class HelpListItemPagerActivity extends FragmentActivity {
private ViewPager mViewPager;
private ArrayList<HelpItem> mHelpList;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mViewPager = new ViewPager(this);
mViewPager.setId(R.id.viewPager);
setContentView(mViewPager);
mHelpList = HelpList.get(this).getHelpList();
FragmentManager fragManager = getSupportFragmentManager();
mViewPager.setAdapter(new FragmentStatePagerAdapter(fragManager) {
@Override
public int getCount() {
return mHelpList.size();
}
@Override
public Fragment getItem(int position) {
HelpItem hItem = mHelpList.get(position);
return HelpFragment.newInstance(hItem.getId());
}
});
UUID helpItemId = (UUID)getIntent().getSerializableExtra(HelpFragment.EXTRA_HELP_ITEM_ID);
for (int i = 0; i < mHelpList.size(); i++) {
if (mHelpList.get(i).getId().equals(helpItemId)) {
mViewPager.setCurrentItem(i);
break;
}
}
}
}