2014-02-13 2 views
0

거기에는 조합을 기반으로 2 개의 스피너가 있습니다. 버튼을 클릭하면 새로운 xml이 열리고 이미지는 스피너의 조합을 기반으로 표시됩니다.클릭하면 xml 페이지의 이미지가 변경됩니다. android

기본적으로 iam은 2 가지 문제에 직면합니다.

  1. 버튼의 onClickListner()이 작동하지 않는, 잘 나는 로그 캣를 작동하지 않는 것은 그가 활동을 시작할 수 없습니다 말한다() 함수를 주석 앞서

  2. image.setImageResource을 움직였다.

정확히 내가 뭘 잘못 했습니까 ??

이있는 주요 활동 코드 .. 모든 시도는 완벽하게 작동합니다 ..하지만 온 클릭 리스너는() 코드를 충돌 ...하지만 주석에 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); 
    } 

모든 활동은 안드로이드 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 개의 오류가 발생한 이유는 정확히 무엇입니까? ??

EDIT 모든이의답변

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.. 

.

+0

com.example.subjects.maths.onCreate 방법에 16 라인은이 코드

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); } 

? –

+0

(onClick의 경우) 매니페스트 파일에'maths' 활동을 추가 했습니까? –

답변

2

당신은 여기에 잘못 : 첫 번째 setContentView(R.layout.physics) 후에 얻을 imageoncreate() 방법 :

당신은 아래와 같은 포맷해야합니다

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); 
+0

감사합니다 남자 ... 문제를 해결 ... :)하지만 abt onclicklistner ?? 그게 무슨 문제인지 .. – Alvin

+0

@Alvin은 귀하의 manifest.xml에 maths 활동을 추가 했습니까? –

+0

pls chk req q .. – Alvin

0

으로이 교체 보기를 설정 한 다음 자원을 사용하십시오. 라인 setContentView(R.layout.physics);을 맨 위로 이동하십시오.

protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
setContentView(R.layout.physics); 
ImageView image; 
image = (ImageView) findViewById(R.id.imageView1); 
image.setImageResource(R.drawable.heart_maths); 

    } 
+0

감사합니다 ... 문제가 해결되었습니다 ... :) 그러나 무슨 abcl onclicklistner ?? 문제가 뭐지 .. – Alvin

+0

onclicklistner 코드로 앱을 실행 해보십시오. 어떤 오류가 발생합니까? – JoelFernandes

+0

코드 추가 pls chk q 다시 – Alvin

0

변경

protected void onCreate(Bundle savedInstanceState) { 
super.onCreate(savedInstanceState); 
setContentView(R.layout.physics); 
ImageView image; 
image = (ImageView) findViewById(R.id.imageView1); 
image.setImageResource(R.drawable.heart_maths); 

} 
관련 문제