Android的onClickListener NullPointerException异常 [英] Android onClickListener NullPointerException

查看:463
本文介绍了Android的onClickListener NullPointerException异常的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

所有。我已经搜查,但找不到任何可以帮助我解决这个问题。

我的应用程序几乎立即启动退出由于NullPointerException异常。我怀疑也许问题在于我使用一个绘制的图像(ImageView的),而不是为你的东西点击一个按钮(查看)。

感谢您的帮助。这已经快把我逼疯了好几个小时!

code是如下:

 包com.example.imageswitchermk2;进口android.app.Activity;
进口android.os.Bundle;
进口android.view.View;
进口android.view.View.OnClickListener;
进口android.view.Window;
进口android.widget.ImageView;公共类MainActivity扩展活动实现OnClickListener {
ImageView的blankTile;@覆盖
保护无效的onCreate(捆绑savedInstanceState){
    super.onCreate(savedInstanceState);
// requestWindowFeature(Window.FEATURE_NO_TITLE);
    的setContentView(R.layout.activity_main);
    blankTile =(ImageView的)findViewById(R.drawable.blank);
    blankTile.setOnClickListener(本); // 19行
}
    公共无效的onClick(视图v){
        blankTile.setId(R.drawable.zero);
    }
}

和堆栈如下:

 发[< 1 GT;主](吊(例外的NullPointerException))
< VM不提供监控信息>
MainActivity.onCreate(捆绑)行:19
MainActivity(活动).performCreate(包)行:5231
Instrumentation.callActivityOnCreate(活动,捆绑)行:1087
ActivityThread.performLaunchActivity(ActivityThread $ ActivityClientRecord,意图)行:2148
ActivityThread.handleLaunchActivity(ActivityThread $ ActivityClientRecord,意图)行:2233
ActivityThread.access $ 800(ActivityThread,ActivityThread $ ActivityClientRecord,意图)线:135
ActivityThread $ H.handleMessage(消息)行:1196
ActivityThread $ H(处理器).dispatchMessage(消息)线:102
Looper.loop()行:136
ActivityThread.main(字符串[])行:5001
Method.invokeNative(对象,对象[],上课,下课[],类,整型,布尔)行:不可用[本机方法]
Method.invoke(对象,对象...)线:515
ZygoteInit $ MethodAndArgsCaller.run()行:785
ZygoteInit.main(字符串[])线:601
NativeStart.main(字符串[])行:不可用[本机方法]


解决方案

  blankTile =(ImageView的)findViewById(R.drawable.blank);

您不能使用 R.drawable 来检索项目。你必须使用 R.id

all. I've searched, but can't find anything that helps me fix this problem.

My app quits almost immediately on launch due to a NullPointerException. I suspect maybe the problem is that I'm using a drawable image (ImageView) rather than a button (View) as the thing you click on.

Thanks for any help. This has been driving me bonkers for hours!

Code is as follows:

package com.example.imageswitchermk2;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.Window;
import android.widget.ImageView;

public class MainActivity extends Activity implements OnClickListener{
ImageView blankTile;    

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
//        requestWindowFeature(Window.FEATURE_NO_TITLE);
    setContentView(R.layout.activity_main);
    blankTile = (ImageView) findViewById(R.drawable.blank); 
    blankTile.setOnClickListener(this); //LINE 19
}
    public void onClick(View v) {
        blankTile.setId(R.drawable.zero);
    }
}

and stack is as follows:

Thread [<1> main] (Suspended (exception NullPointerException))  
<VM does not provide monitor information>   
MainActivity.onCreate(Bundle) line: 19  
MainActivity(Activity).performCreate(Bundle) line: 5231 
Instrumentation.callActivityOnCreate(Activity, Bundle) line: 1087   
ActivityThread.performLaunchActivity(ActivityThread$ActivityClientRecord, Intent) line: 2148    
ActivityThread.handleLaunchActivity(ActivityThread$ActivityClientRecord, Intent) line: 2233 
ActivityThread.access$800(ActivityThread, ActivityThread$ActivityClientRecord, Intent) line: 135    
ActivityThread$H.handleMessage(Message) line: 1196  
ActivityThread$H(Handler).dispatchMessage(Message) line: 102    
Looper.loop() line: 136 
ActivityThread.main(String[]) line: 5001    
Method.invokeNative(Object, Object[], Class, Class[], Class, int, boolean) line: not available [native method]  
Method.invoke(Object, Object...) line: 515  
ZygoteInit$MethodAndArgsCaller.run() line: 785  
ZygoteInit.main(String[]) line: 601 
NativeStart.main(String[]) line: not available [native method]  

解决方案

blankTile = (ImageView) findViewById(R.drawable.blank); 

you can not use R.drawable to retrieve items. You have to use R.id

这篇关于Android的onClickListener NullPointerException异常的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆