package first.android;
import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;
public class FirstAndroid_TestActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//setContentView(R.layout.main);
TextView tv = new TextView(this);
//tv.setText("Hi~?");
tv.setText(A());
setContentView(tv);
}
private int A()
{
return 1;
}
}
--------------------------------------------------------
여기서 A 라는 method를 실행하면 , 죄송합니다 . 애플리케이션이 예상치않게 종료되었습니다. 라고 뜨고
그냥 A라는 method를 호출하지 않고 Hi~? 라는 것으로 setText를하면 Hi~? 라는 글씨가 잘 뜹니다.;
원인이 뭘까요 ....??
검색을 해봤는데 , 못찾겠어서 질문 올립니다.
공지사항도 다 읽었습니다. <-요거를 쓰라고 하더군요 ;;
정말 감사합니다. 잘되네요.!!
원인이 type이 안맞은건가요 단순히?
이전에 제가
setText위에다가
Integer a = A();
String str = a.toString();
--------------------------------
라고 치고선 ,setText(str); 라고 했을때도안되던데;; 이것도 같은 원인 때문인건가요 ??
---------------------------------
그리고 , A() method 말고, class를 따로 만든 다른 긴 int를 return 하는 method를 사용할때도 , 같은 증상으로 꺼지는데,
원인이 어떤건지좀 알 수 있을까요 ㅠㅠ?? 계속 인터넷 검색하고 책을 찾아서 읽어보는데도, 지식이 짧아서 잘 못찾겠습니다;
setText(CharSequence text) 인자가 CharSequence를 받기 때문이죠.
String 이나 byte[], char[] 는 그냥 들어가는데 다른건 안되겟지요...
뭐... int형을 받기도 하는데
setText(int resid);
int 형 인자를 받는경우는 리소스ID를 받아서 넣는경우겠죠.
setText(R.string.name); 뭐 이런식..
거기에 임의의 정수값을 넣는다면 R.java 파일을 참조해서 해당 리소스 주소를 찾아갈텐데
정의되어 있지 않은 주소를 참조하게 되기 때문에
런타임에서 null point exception이 날것 같네요
아..!! 이거 !! 맨처음 안드로이드 프로젝트 생성하고 처음 생겨있는 .java 파일에다가 작업한 내용입니다.