use*_*652 -5 android nullpointerexception android-imageview
所有.我搜索过,但找不到任何可以帮我解决这个问题的东西.
由于NullPointerException,我的应用程序几乎在启动时立即退出.我怀疑问题可能是我使用可绘制图像(ImageView)而不是按钮(视图)作为你点击的东西.
谢谢你的帮助.这让我疯狂了好几个小时!
代码如下:
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);
}
}
Run Code Online (Sandbox Code Playgroud)
和堆栈如下:
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]
Run Code Online (Sandbox Code Playgroud)
blankTile = (ImageView) findViewById(R.drawable.blank);
Run Code Online (Sandbox Code Playgroud)
你不能R.drawable
用来检索物品.你必须使用R.id
要获得View的Id,请使用R.id
而不是R.drawable
,更改
blankTile = (ImageView) findViewById(R.drawable.blank);
Run Code Online (Sandbox Code Playgroud)
至
blankTile = (ImageView) findViewById(R.id.blank);
Run Code Online (Sandbox Code Playgroud)
并设置drawable使用 blankTile.setImageResource(R.drawable.zero);
归档时间: |
|
查看次数: |
175 次 |
最近记录: |