코드는 에러가 없는거같은데
앱 실행시 바로 에러가 나버립니다.
도와주세요 ㅠ.ㅠ
package exam.ttm2;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.util.Log;
import android.widget.Button;
import android.widget.ImageView;
public class TTM2 extends Activity {
View mv1, mv2, mv3;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
mv1 = findViewById(R.id.vw1);
mv2 = findViewById(R.id.vw2);
mv3 = findViewById(R.id.vw3);
findViewById(R.id.pf).setOnClickListener(mClickListener);
findViewById(R.id.tb).setOnClickListener(mClickListener);
findViewById(R.id.tt).setOnClickListener(mClickListener);
}
Button.OnClickListener mClickListener = new Button.OnClickListener(){
public void onClick(View v){
mv1.setVisibility(View.INVISIBLE);
mv2.setVisibility(View.INVISIBLE);
mv3.setVisibility(View.INVISIBLE);
switch(v.getId())
{
case R.id.pf :
mv1.setVisibility(View.VISIBLE);
break;
case R.id.tb :
mv2.setVisibility(View.VISIBLE);
break;
case R.id.tt :
mv3.setVisibility(View.VISIBLE);
break;
}
}
};
}
이상입니다.
도저히 왜 강제종료가 되는지 모르겠습니다.
졸업작품만들고 있는건데..
틀린부분만 가르쳐 주시면 감사하겠습니다.
그냥 초보의... 얘깁니다만..
findViewById(R.id.pf).setOnClickListener(mClickListener);
뒤에 괄호 안에 this로 바꿔줘 보시면 되지 않을까요?
코드가 이상하긴 하군요
mv1 = findViewById(R.id.vw1);
mv2 = findViewById(R.id.vw2);
mv3 = findViewById(R.id.vw3);
findViewById(R.id.pf).setOnClickListener(mClickListener);
findViewById(R.id.tb).setOnClickListener(mClickListener);
findViewById(R.id.tt).setOnClickListener(mClickListener);
-- 이부분도 find를 2번해줄필요가 없고요,,,, 그냥 mv1.setOnClickListener(mClickListener);
이런식으로 쓰는게 좋을거 같고요,, 그리고 리스너를 new 해서 만드셨는데 그 부분이 밖으로 빠져있으면
onCreate하는부분에서 리스너 만드는 코드를 넣어주셔야하지 않을가하는데여.. onCreate 부터 먼저 시작할텐데.. 리스너 만드는부분이
밖으로 빠져있다면 리스너 달기전에 리스너가 없는 상태로 시작될거 같습니다




에러메시지를 봐야 알수있을듯한대요
의심이 가는건
키이벤트 마다
mv1.setVisibility(View.INVISIBLE);
mv2.setVisibility(View.INVISIBLE);
mv3.setVisibility(View.INVISIBLE);
이걸 구지해줘야하는가네요