我有2个微调器,基于那里的组合,单击按钮会打开一个新的xml,其中将基于微调器的组合显示一个图像。
基本上iam面临2个问题。
按钮onClickListner()无法正常工作,我对函数进行了注释并向前移动
image.setImageResource()无法正常工作logcat说他无法启动活动。
所以我到底做错了什么?
这是主要的活动代码..尝试之前的所有操作都可以正常工作..但是onclick listner()使代码崩溃..但是在评论时prg可以工作..
try
{
/*btn=(Button)this.findViewById(R.id.button);
System.out.println(btn);
btn.setOnClickListener(new OnClickListener() {
public void onClick(View v) {*/
if(subtxt.equals("Maths"))
{
if(Integer.parseInt(yeartxt)==1990)
{
Intent ip = new Intent(MainActivity.this, maths.class);
startActivity(ip);
}
.
//the prg executes until start activity perfectly and continues onto maths.class
.
.
这是maths.java中的代码
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
ImageView image;
image = (ImageView) findViewById(R.id.imageView1);
image.setImageResource(R.drawable.heart_maths);
setContentView(R.layout.physics);
}
所有活动都在android mainfest中指定。..这就是日志猫
02-13 00:29:20.908: E/AndroidRuntime(1485): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2245)
02-13 00:29:20.908: E/AndroidRuntime(1485): at android.app.ActivityThread.access$800(ActivityThread.java:135)
02-13 00:29:20.908: E/AndroidRuntime(1485): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196)
02-13 00:29:20.908: E/AndroidRuntime(1485): at android.os.Handler.dispatchMessage(Handler.java:102)
02-13 00:29:20.908: E/AndroidRuntime(1485): at android.os.Looper.loop(Looper.java:136)
02-13 00:29:20.908: E/AndroidRuntime(1485): at android.app.ActivityThread.main(ActivityThread.java:5017)
02-13 00:29:20.908: E/AndroidRuntime(1485): at java.lang.reflect.Method.invokeNative(Native Method)
02-13 00:29:20.908: E/AndroidRuntime(1485): at java.lang.reflect.Method.invoke(Method.java:515)
02-13 00:29:20.908: E/AndroidRuntime(1485): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779)
02-13 00:29:20.908: E/AndroidRuntime(1485): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)
02-13 00:29:20.908: E/AndroidRuntime(1485): at dalvik.system.NativeStart.main(Native Method)
02-13 00:29:20.908: E/AndroidRuntime(1485): Caused by: java.lang.NullPointerException
02-13 00:29:20.908: E/AndroidRuntime(1485): at com.example.subjects.maths.onCreate(maths.java:16)
02-13 00:29:20.908: E/AndroidRuntime(1485): at android.app.Activity.performCreate(Activity.java:5231)
02-13 00:29:20.908: E/AndroidRuntime(1485): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
02-13 00:29:20.908: E/AndroidRuntime(1485): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2159)
02-13 00:29:20.908: E/AndroidRuntime(1485): ... 11 more
那么这2个错误的确切原因是在这里。??
编辑 答案
1) the on clicklistner() error can be avoided by declaring all variables globally in mainactivity.java
2) the image.setImageResource() should be given after setcontentview..
这就是全部。
您在这里出错:首先setContentView(R.layout.physics)
和之后的getimage
oncreate()
方法:
您应采用以下格式:
image = (ImageView) findViewById(R.id.imageView1);
image.setImageResource(R.drawable.heart_maths);
setContentView(R.layout.physics);
替换为
setContentView(R.layout.physics);
image = (ImageView) findViewById(R.id.imageView1);
image.setImageResource(R.drawable.heart_maths);
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句