if (dialogMode) {
activity.setTheme(android.R.style.Theme_Dialog);
activity.requestWindowFeature(Window.FEATURE_NO_TITLE);
}
activity.getWindow().setSoftInputMode(
//WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_VISIBLE);
WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN);//default: hidden
}
在initPageView中增加一行:etContent.setKeyListener(null)。让窗口内容无法修改。
复制代码 private void initPageView() {
… …
// 文字输入区域
etContent = new EditText(getContext());
etContent.setGravity(Gravity.LEFT | Gravity.TOP);
etContent.setBackgroundDrawable(null);
etContent.setText(String.valueOf(reqData.get("text")));
etContent.setKeyListener(null);//make the edittext uneditable
etContent.setLayoutParams(lpEt);
… …
}
【问题2】向微博分享,点击“分享”后,过一会程序异常停止。
原因分析:
通过调试观察,发现ShareSDK在解析从Weibo收到的Json包时出现内存违法访问。具体位置是在解析一个数组对象时出现的问题。 ShareSDK用CCArray来存储Json中的数组对象。该问题在cocos2d-x 2.2.2版本中不会出现,但在cocos2d-x 3.0rc2版本中会出现。经代码对比发现,3.0rc2版本中的CCArray的实现与2.2.2 CCArray实现有很大不同,似乎是做了较大重构,暂不能确定是否是3.0rc2版本中CCArray实现的bug。
解决方法:由于后续的分享结果通知成功与否只需要根据分享的状态来决定,因此我们只需解析出"status"、“action”和“platform” 这三个CCNumber类型字段的值即可。CCArray类型的对象我们并不需要,因此我们只需绕过对Array类型字段的解析和存储即可,修改如下:










