我知道这个问题已经被问过计算器,( 链接到原来的问题 )
我只要解决以下,并得到了一些错误。 (我想有只在评论问,但我认为没有足够的信誉来问一个明显的答案评论) 我原来的问题是相同的,即“我要分页长文本”
在所提供的答案遇到(以上链接贴)错误 - 1.讲述PageSplitter下课后,解决方案提供商(Mixel公司)指出这一点 -
...然后使用PageSplitter.getPages()方法,你可以得到分裂到页原文,并把他们每个人到TextView的:
pageView.setAdapter(new TextPagerAdapter(getSupportFragmentManager(), pageSplitter.getPages()));
我想,在这里他指的是pagesView
。 (我真正关心的是下面写的,提到这一点,以防万一我错过了什么东西。)
- 这是我面临的真正的问题-在PageFragment类,我得到这个错误-
该方法getObjectStorage()是未定义的类型PageFragment
而Mixel公司称大约getObjectStorage() -
getObjectStorage()返回,从按键到弱引用对象(当你想要把自定义对象捆绑,这是有益的)存储地图单SharedObjectStorage:
我已经创建了一个名为SharedObjectStorage,由Mixel公司提到的一个单独的类,但我仍然得到错误。
PageFragment
public class PageFragment extends Fragment {
private final static String PAGE_TEXT = "PAGE_TEXT";
public static PageFragment newInstance(CharSequence pageText) {
PageFragment frag = new PageFragment();
Bundle args = new Bundle();
args.putLong(PAGE_TEXT, getObjectStorage().putSharedObject(pageText));
frag.setArguments(args);
return frag;
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
CharSequence text = (CharSequence) getObjectStorage().getSharedObject(getArguments().getLong(PAGE_TEXT));
TextView pageView = (TextView) inflater.inflate(R.layout.page, container, false);
pageView.setTextSize(TypedValue.COMPLEX_UNIT_PX, getResources().getDimension(R.dimen.text_size));
pageView.setText(text);
return pageView;
}
}
SharedObjectStorage
public class SharedObjectStorage {
private final Random random = new Random(Calendar.getInstance().getTimeInMillis());
private HashMap<Long, WeakReference<Object>> sharedObjects = new HashMap<Long, WeakReference<Object>>();
public synchronized Long putSharedObject(Object o) {
long key;
do {
key = random.nextLong();
} while (sharedObjects.containsKey(key));
sharedObjects.put(key, new WeakReference<Object>(o));
return key;
}
public synchronized Object getSharedObject(long key) {
if (sharedObjects.containsKey(key)) {
return sharedObjects.get(key).get();
}
return null;
}
}
反正是有解决此问题?
PS - 我没有在这里发布的答案,因为它已经在计算器本身。 但是,如果你还问我,我会的。 谢谢。