文本分页 android,如何将长文本分页到Android中的页面?

这是我面临的真正问题 - 在PageFragment类中,我收到此错误 -

醇>

对于类型PageFragment,方法getObjectStorage()未定义

而Mixel说明了getObjectStorage() -

getObjectStorage()返回存储的singleton SharedObjectStorage

从键映射到对象的弱引用(这在您使用时很有用

想把自定义对象放到Bundle上:

我创建了一个名为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> sharedObjects = new HashMap>();

public synchronized Long putSharedObject(Object o) {

long key;

do {

key = random.nextLong();

} while (sharedObjects.containsKey(key));

sharedObjects.put(key, new WeakReference(o));

return key;

}

public synchronized Object getSharedObject(long key) {

if (sharedObjects.containsKey(key)) {

return sharedObjects.get(key).get();

}

return null;

}

}

无论如何都可以解决这个问题吗?

P.S。 - 我没有在这里发布答案,因为它已经在stackoverflow本身上了。但是,如果你仍然问我,我会的。

感谢。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值