Caused by: java.lang.NullPointerException 问题求助!

akazhuk 2014-09-01 02:49:11
错误日志:




代码:

 
public class ChatActivity extends BaseActivity implements OnClickListener {

public static final String COPY_IMAGE = "EASEMOBIMG";
public static final int REQUEST_CODE_COPY_AND_PASTE = 11;

private ImageView micImage;
private Drawable[] micImages;
private View more;
private LinearLayout expressionContainer;
private LinearLayout btnContainer;

// 给谁发送消息


private ImageView iv_emoticons_normal;
private ImageView iv_emoticons_checked;
private RelativeLayout edittext_layout;
private Button btnMore;
private ListView listView;
private InputMethodManager manager;



@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initView();
}

/**
* initView
*/
protected void initView() {
micImage = (ImageView) findViewById(R.id.mic_image);
more = findViewById(R.id.more);
listView = (ListView) findViewById(R.id.list);
btnContainer = (LinearLayout) findViewById(R.id.ll_btn_container);
expressionContainer = (LinearLayout) findViewById(R.id.ll_face_container);

}
@Override
public void onClick(View v) {
edittext_layout.setBackgroundResource(R.drawable.input_bar_bg_active);
more.setVisibility(View.GONE);
iv_emoticons_normal.setVisibility(View.VISIBLE);
iv_emoticons_checked.setVisibility(View.INVISIBLE);
expressionContainer.setVisibility(View.GONE);
btnContainer.setVisibility(View.GONE);

}

private void setUpView() {

manager = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
listView.setOnTouchListener(new OnTouchListener() {

@Override
public boolean onTouch(View v, MotionEvent event) {
hideKeyboard();
more.setVisibility(View.GONE);
iv_emoticons_normal.setVisibility(View.VISIBLE);
iv_emoticons_checked.setVisibility(View.INVISIBLE);
expressionContainer.setVisibility(View.GONE);
btnContainer.setVisibility(View.GONE);
return false;
}

});
}

/**
* 显示或隐藏图标按钮页
*
* @param view
*/
public void more(View view) {
if (more.getVisibility() == View.GONE) {
System.out.println("more gone");
hideKeyboard();
more.setVisibility(View.VISIBLE);
btnContainer.setVisibility(View.VISIBLE);
expressionContainer.setVisibility(View.GONE);
} else {
if (expressionContainer.getVisibility() == View.VISIBLE) {
expressionContainer.setVisibility(View.GONE);
btnContainer.setVisibility(View.VISIBLE);
iv_emoticons_normal.setVisibility(View.VISIBLE);
iv_emoticons_checked.setVisibility(View.INVISIBLE);
} else {
more.setVisibility(View.GONE);
}

}

}

/**
* 点击文字输入框
*
* @param v
*/
public void editClick(View v) {
listView.setSelection(listView.getCount() - 1);
if (more.getVisibility() == View.VISIBLE) {
more.setVisibility(View.GONE);
iv_emoticons_normal.setVisibility(View.VISIBLE);
iv_emoticons_checked.setVisibility(View.INVISIBLE);
}

}


public List<String> getExpressionRes(int getSum) {
List<String> reslist = new ArrayList<String>();
for (int x = 1; x <= getSum; x++) {
String filename = "ee_" + x;

reslist.add(filename);

}
return reslist;

}

/**
* 隐藏软键盘
*/
private void hideKeyboard() {
if (getWindow().getAttributes().softInputMode != WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN) {
if (getCurrentFocus() != null)
manager.hideSoftInputFromWindow(getCurrentFocus().getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS);
}
}
}


求解错误在哪里?
...全文
1777 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
akazhuk 2014-09-02
  • 打赏
  • 举报
回复
引用 7 楼 shixitong 的回复:
[quote=引用 6 楼 akazhuk 的回复:] [quote=引用 5 楼 shixitong 的回复:] [quote=引用 4 楼 akazhuk 的回复:] [quote=引用 1 楼 shixitong 的回复:] 在hideKeyboard这边加个断点看看吧
您好!请问能再详细点吗?本人新手,不太懂。 设置断点了,看到manager的值是null的 请教如何改?[/quote] 那找找你的manager是在哪初始化的?[/quote] 您好,找到了。 private void setUpView() { manager = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); 这里的,但总看不出哪里错了?[/quote] 这个方法什么时候调用的?[/quote] 谢谢您!找到问题所在了! @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); initView(); 这里我忘加 setUpview(); 了! 跟着你跟我说的一步步找就找到了! 真心感谢您!
shixitong 2014-09-02
  • 打赏
  • 举报
回复
引用 6 楼 akazhuk 的回复:
[quote=引用 5 楼 shixitong 的回复:] [quote=引用 4 楼 akazhuk 的回复:] [quote=引用 1 楼 shixitong 的回复:] 在hideKeyboard这边加个断点看看吧
您好!请问能再详细点吗?本人新手,不太懂。 设置断点了,看到manager的值是null的 请教如何改?[/quote] 那找找你的manager是在哪初始化的?[/quote] 您好,找到了。 private void setUpView() { manager = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); 这里的,但总看不出哪里错了?[/quote] 这个方法什么时候调用的?
akazhuk 2014-09-02
  • 打赏
  • 举报
回复
引用 5 楼 shixitong 的回复:
[quote=引用 4 楼 akazhuk 的回复:] [quote=引用 1 楼 shixitong 的回复:] 在hideKeyboard这边加个断点看看吧
您好!请问能再详细点吗?本人新手,不太懂。 设置断点了,看到manager的值是null的 请教如何改?[/quote] 那找找你的manager是在哪初始化的?[/quote] 您好,找到了。 private void setUpView() { manager = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); 这里的,但总看不出哪里错了?
shixitong 2014-09-02
  • 打赏
  • 举报
回复
引用 4 楼 akazhuk 的回复:
[quote=引用 1 楼 shixitong 的回复:] 在hideKeyboard这边加个断点看看吧
您好!请问能再详细点吗?本人新手,不太懂。 设置断点了,看到manager的值是null的 请教如何改?[/quote] 那找找你的manager是在哪初始化的?
akazhuk 2014-09-02
  • 打赏
  • 举报
回复
引用 1 楼 shixitong 的回复:
在hideKeyboard这边加个断点看看吧
您好!请问能再详细点吗?本人新手,不太懂。 设置断点了,看到manager的值是null的 请教如何改?
akazhuk 2014-09-01
  • 打赏
  • 举报
回复
引用 2 楼 hjq2013 的回复:
getCurrentFocus()返回的空???没有View或得焦点???
这个不是很懂,能详细说明一下吗?
Hare_ 2014-09-01
  • 打赏
  • 举报
回复
getCurrentFocus()返回的空???没有View或得焦点???
shixitong 2014-09-01
  • 打赏
  • 举报
回复
在hideKeyboard这边加个断点看看吧

50,523

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧