Caused by: java.lang.NullPointerException
2014-09-02 11:04
375 查看
问题截图:
代码:
解决问题的过程:
在hideKeyboard那边加了断点调试了一下,发现manager的值是null的, 然后就查看manager所在的代码处,
是在这里:
感觉这里没问题,然后就查看setUpView() 这个方法什么时候调用过? 发现原来是在OnCreate里缺少了.
然后加在onCreate那里就解决问题了:
代码:
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); } } }
解决问题的过程:
在hideKeyboard那边加了断点调试了一下,发现manager的值是null的, 然后就查看manager所在的代码处,
是在这里:
private void setUpView() { manager = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); listView.setOnTouchListener(new OnTouchListener() {
感觉这里没问题,然后就查看setUpView() 这个方法什么时候调用过? 发现原来是在OnCreate里缺少了.
然后加在onCreate那里就解决问题了:
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); initView(); setUpView(); }
相关文章推荐
- Caused by: java.lang.NullPointerException大家帮我看下,这是怎么回事?
- Caused by: java.lang.NullPointerException: Attempt to write to field 'int android.app.Fragment.mNextAnim' on a null object reference
- Android 发送短信 抛出Caused by: java.lang.NullPointerException 09-18 15:11:00.905: E/AndroidRuntime(10159)
- Android 解决方案:Caused by: java.lang.NullPointerException
- getActionBar()返回为空 空指针错误 Caused by: java.lang.NullPointerException
- Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.app.ActionBar.setDisplayShowHomeEnabled(boolean)' on a null object reference
- Caused by: java.lang.IllegalArgumentException: Text may not be null
- AndroidStudio启动异常:Caused by: java.lang.IllegalArgumentException: Argument for @NotNull paramet
- 转换为XML文件时发生 javax.xml.transform.TransformerException: java.lang.NullPointerException
- Hibernate查询,无数据正常,有数据出现java.lang.NullPointerException 异常
- 照着写一个简单的portal,后台一直报java.lang.NullPointerException
- Zend Studio for Eclipse的java.lang.NullPointerException错误的解决方法
- hibernate java.lang.NullPointerException解决
- error reading tld listeners java.lang.nullpointerexception异常
- Heritrix2在Settings Sheets时出现java.lang.NullPointerException错的原因和解决方式
- 非常规:java.lang.NullPointerException
- 出现java.lang.NullPointerException此类错误
- Zend Studio for Eclipse的java.lang.NullPointerException错误的解决方法
- java.lang.NullPointerException
- 空指针错误 java.lang.NullPointerException 浅谈