마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

setcontentView 관련해서요 ㅠㅠ

0 추천

 

아래 처럼 조건에 따라 처음 채우는 레이아웃 값을 바꾸려고 하는데 계속 에러가뜨네요

 

아무래도 처음 채워줘야하는 값이다보니 조심해서 건드려야되나봐요 ㅠㅠ

 

 

 

어떻게하면 액티비티에서, 조건에따라 처음 채워지는 레이아웃을 바꿀 수 있을까요??

 

 

 

 

 

bombermin (2,520 포인트) 님이 2014년 6월 21일 질문

1개의 답변

0 추천
 
채택된 답변
음..제일 간단하게 하는 방법은 조건에 따라 visilblity조절 하는 것이고..조금 난이도가 있지만 효율적으로 관리하려면 inflater를 알아보시기 바랍니다. inflater를 이용해서 view를 설정하고 기본 layout에 추가하는 방식이면 될겁니다.
YeonMin (17,860 포인트) 님이 2014년 6월 22일 답변
bombermin님이 2014년 8월 1일 채택됨
흠 그냥 background 이미지만 바꾸려구하는건데 ㅠㅠ inflate를 쓰면 다 바뀌어 버리네요 다른방법 혹시 아시는거있으신가요??ㅠㅠ
발생하는 오류가 무었인지요?
단순히 background  이미지만 바꾸려고 하신다면
바꾸려는 객체의 xml 에 id 값을 할당하고
(View)findViewbyId(R.id.객체id).setbackground(바꾸려는 이미지); 등으로 바꿀수 있다고 생각됩니다만...
LinearLayout a = (LinearLayout)findViewById(R.id.mainlinear);
           
                a.setBackground( (Drawable)getResources().getDrawable(R.drawable.coin_background2));
이렇게 해보았는데 이런 에러가뜨네요 ㅠ


06-22 11:59:04.258: W/dalvikvm(7914): threadid=1: thread exiting with uncaught exception (group=0x419e0ba8)
06-22 11:59:04.266: E/AndroidRuntime(7914): FATAL EXCEPTION: main
06-22 11:59:04.266: E/AndroidRuntime(7914): Process: com.exam, PID: 7914
06-22 11:59:04.266: E/AndroidRuntime(7914): java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=0, result=-1, data=Intent {  }} to activity {com.exam/com.exam.coinBlockIntroActivity}: java.lang.NullPointerException
06-22 11:59:04.266: E/AndroidRuntime(7914):     at android.app.ActivityThread.deliverResults(ActivityThread.java:3368)
06-22 11:59:04.266: E/AndroidRuntime(7914):     at android.app.ActivityThread.handleSendResult(ActivityThread.java:3411)
06-22 11:59:04.266: E/AndroidRuntime(7914):     at android.app.ActivityThread.access$1300(ActivityThread.java:138)
06-22 11:59:04.266: E/AndroidRuntime(7914):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1247)
06-22 11:59:04.266: E/AndroidRuntime(7914):     at android.os.Handler.dispatchMessage(Handler.java:102)
06-22 11:59:04.266: E/AndroidRuntime(7914):     at android.os.Looper.loop(Looper.java:136)
06-22 11:59:04.266: E/AndroidRuntime(7914):     at android.app.ActivityThread.main(ActivityThread.java:5050)
06-22 11:59:04.266: E/AndroidRuntime(7914):     at java.lang.reflect.Method.invokeNative(Native Method)
06-22 11:59:04.266: E/AndroidRuntime(7914):     at java.lang.reflect.Method.invoke(Method.java:515)
06-22 11:59:04.266: E/AndroidRuntime(7914):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:789)
06-22 11:59:04.266: E/AndroidRuntime(7914):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:605)
06-22 11:59:04.266: E/AndroidRuntime(7914):     at dalvik.system.NativeStart.main(Native Method)
06-22 11:59:04.266: E/AndroidRuntime(7914): Caused by: java.lang.NullPointerException
06-22 11:59:04.266: E/AndroidRuntime(7914):     at com.exam.coinBlockIntroActivity.onActivityResult(coinBlockIntroActivity.java:611)
06-22 11:59:04.266: E/AndroidRuntime(7914):     at android.app.Activity.dispatchActivityResult(Activity.java:5433)
06-22 11:59:04.266: E/AndroidRuntime(7914):     at android.app.ActivityThread.deliverResults(ActivityThread.java:3364)
06-22 11:59:04.266: E/AndroidRuntime(7914):     ... 11 more
setBackgroundResouce로 바로 id값 넣으면 될텐데..
ㅜㅜ그거랑 상관없이 같은에러가.. 레이아웃에다가 다시 이미지를 씌우는게 안되더라구요
mainlinear id를 가진 객체가 main.xml에 있는 객체 맞는지요?
오류 로그를 보니 startActivityForResult함수로 Activity를 호출하고 거기서 SharedPreference를 저장한후 종료시켜 다시 coinBlockIntroActivity 화면으로 오는 것 같습니다만..
coinBlockIntroActivity 611라인이 어떤 내용인지요?
...