onClickListener를 할당하는 동안 Android 앱이 충돌합니다.

MRefaat

나는를 할당 할 OnClickListener에 존재하는 일부 동적으로 선언 된 요소를 동적으로 선언 LinearLayout, 내가 사용 getChildAt()내에서 OnClickListener에 존재하는 요소를 다루는에서 주문 LinearLayout하지만 내 응용 프로그램 충돌을 할 때 내가 시도 할 때 제거 myChildAt()그냥하자 LinearLayout잘 작동 하는 직접 처리합니다. 이것은 내 코드입니다.

    List<LinearLayout> inner_ver = new ArrayList<LinearLayout>();
    for(int i = 0 ; i < size ; i++){
        LinearLayout temp_inner_ver = new LinearLayout(this);
        temp_inner_ver.setLayoutParams(temp_lay);
        temp_inner_ver.setOrientation(LinearLayout.VERTICAL);
        temp_inner_ver.setWeightSum(2);
        temp_inner_ver.setPadding(7, 7, 7, 7);
        inner_ver.add(temp_inner_ver);
        }

for(int j = 0 ; j < inner_ver.size() ; j++){
    // the LinearLayout declaration
    inner_ver.get(j).addView(icon1);
    icon1.setLayoutParams(lp_icon);
    icon1.setBackgroundResource(R.drawable.ac_overlay);
    icon1.setOrientation(LinearLayout.HORIZONTAL);
    icon1.setTag(NORMAL);

    // the elements declaration
    TextView text1 = new TextView(this);
    icon1.addView(text1);
    text1.setLayoutParams(text_name);
    text1.setText("something");
    text1.setTextSize(12);
    text1.setTextColor(Color.WHITE);

    ImageButton image = new ImageButton(this);
    icon1.addView(image);
    image.setLayoutParams(lp_ineer_ver);
    image.setImageResource(R.drawable.grpbuttonfocus6);
    image.setBackgroundColor(Color.TRANSPARENT);

    Button testbut = new Button(this);
    icon1.addView(testbut);
    testbut.setLayoutParams(lp_ineer_ver);
    testbut.setText(" 8");
    testbut.setTextSize(12);
    testbut.setBackgroundColor(Color.TRANSPARENT);
    testbut.setTextColor(Color.WHITE);

    ImageButton testcol = new ImageButton(this);
    icon1.addView(testcol);
    testcol.setLayoutParams(lp_ineer_ver);
    testcol.setImageResource(R.drawable.home_cool);
    testcol.setBackgroundColor(Color.TRANSPARENT);

    TextView text2 = new TextView(this);
    icon1.addView(text2);
    text2.setLayoutParams(lp_ineer_ver);
    text2.setText("00");
    text2.setTextSize(12);

    assignListener(icon1);

}

public void assignListener(final LinearLayout l) {

 l.getChildAt(1).setOnClickListener(new View.OnClickListener() { 
                @Override
                public void onClick(View v) {
                    l.getChildAt(1).setBackgroundResource(R.drawable.home_grpbuttonfocus10);// this Line Getting a NullPointerException
                }
            });
        }

다음과 같이 만들면 잘 작동합니다.

public void assignListener(final LinearLayout l) {
     l.setOnClickListener(new View.OnClickListener() { 
                    @Override
                    public void onClick(View v) {
                        l.setBackgroundResource(R.drawable.home_grpbuttonfocus10); 
                    }
                });
            }

LogCat보기 : ( NullPointerException코드에서 위에 표시된 줄에 표시됨)

01-14 12:22:06.308: INFO/ActivityManager(93): START {flg=0x4000000 cmp=com.example.solaceap/.HomeView (has extras)} from pid 602
01-14 12:22:06.308: WARN/WindowManager(93): Failure taking screenshot for (222x135) to layer 21015
01-14 12:22:06.625: DEBUG/dalvikvm(602): GC_FOR_ALLOC freed 11K, 3% free 11649K/11975K, paused 86ms
01-14 12:22:06.995: DEBUG/AndroidRuntime(602): Shutting down VM
01-14 12:22:06.995: WARN/dalvikvm(602): threadid=1: thread exiting with uncaught exception (group=0x409961f8)
01-14 12:22:07.047: ERROR/AndroidRuntime(602): FATAL EXCEPTION: main
01-14 12:22:07.047: ERROR/AndroidRuntime(602): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.solaceap/com.example.solaceap.HomeView}: java.lang.NullPointerException
01-14 12:22:07.047: ERROR/AndroidRuntime(602):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1955)
01-14 12:22:07.047: ERROR/AndroidRuntime(602):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1980)
01-14 12:22:07.047: ERROR/AndroidRuntime(602):     at android.app.ActivityThread.access$600(ActivityThread.java:122)
01-14 12:22:07.047: ERROR/AndroidRuntime(602):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1146)
01-14 12:22:07.047: ERROR/AndroidRuntime(602):     at android.os.Handler.dispatchMessage(Handler.java:99)
01-14 12:22:07.047: ERROR/AndroidRuntime(602):     at android.os.Looper.loop(Looper.java:137)
01-14 12:22:07.047: ERROR/AndroidRuntime(602):     at android.app.ActivityThread.main(ActivityThread.java:4340)
01-14 12:22:07.047: ERROR/AndroidRuntime(602):     at java.lang.reflect.Method.invokeNative(Native Method)
01-14 12:22:07.047: ERROR/AndroidRuntime(602):     at java.lang.reflect.Method.invoke(Method.java:511)
01-14 12:22:07.047: ERROR/AndroidRuntime(602):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
01-14 12:22:07.047: ERROR/AndroidRuntime(602):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
01-14 12:22:07.047: ERROR/AndroidRuntime(602):     at dalvik.system.NativeStart.main(Native Method)
01-14 12:22:07.047: ERROR/AndroidRuntime(602): Caused by: java.lang.NullPointerException
01-14 12:22:07.047: ERROR/AndroidRuntime(602):     at com.example.solaceap.HomeView.assignListener(HomeView.java:669)
01-14 12:22:07.047: ERROR/AndroidRuntime(602):     at com.example.solaceap.HomeView.setRooms(HomeView.java:518)
01-14 12:22:07.047: ERROR/AndroidRuntime(602):     at com.example.solaceap.HomeView.setAllRooms(HomeView.java:359)
01-14 12:22:07.047: ERROR/AndroidRuntime(602):     at com.example.solaceap.HomeView.declare_dynamics(HomeView.java:307)
01-14 12:22:07.047: ERROR/AndroidRuntime(602):     at com.example.solaceap.HomeView.declare(HomeView.java:62)
01-14 12:22:07.047: ERROR/AndroidRuntime(602):     at com.example.solaceap.HomeView.onCreate(HomeView.java:45)
01-14 12:22:07.047: ERROR/AndroidRuntime(602):     at android.app.Activity.performCreate(Activity.java:4465)
01-14 12:22:07.047: ERROR/AndroidRuntime(602):     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1049)
01-14 12:22:07.047: ERROR/AndroidRuntime(602):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1919)
01-14 12:22:07.047: ERROR/AndroidRuntime(602):     ... 11 more
WarrenFaith

가장 쉬운 해결책은 리스너를 부모 대신보기에 직접 설정하는 것입니다.

올바른보기를 얻었는지 확실하지 않지만 assignListener(image);(icon1 레이아웃에서 자식 1이어야 함) 호출 해야합니다.

assignListener()게시 한 두 번째 버전을 사용하는 것보다 :

public void assignListener(final ImageView imageView) { // changed type
    imageView.setOnClickListener(new View.OnClickListener() { 
        @Override
        public void onClick(View v) {
            v.setBackgroundResource(R.drawable.home_grpbuttonfocus10); 
        }
    });
}

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

Android의 SQLite 데이터베이스에 데이터를 삽입하는 동안 앱이 충돌합니다.

분류에서Dev

Fragment에서 Google지도를 사용하는 동안 앱이 충돌합니다.

분류에서Dev

onClickListener를 설정하려고하면 앱이 충돌합니다.

분류에서Dev

ImageView에 onClickListener를 추가하면 앱이 충돌합니다.

분류에서Dev

SharedPreferences.contains ()를 사용할 때 Android 앱이 충돌합니다.

분류에서Dev

Android에서 gridview를 사용하는 동안 응용 프로그램이 충돌합니다.

분류에서Dev

알림을로드하는 동안 앱이 충돌합니다.

분류에서Dev

다음 Android 활동에 버튼을 연결하면 앱이 충돌합니다.

분류에서Dev

tableview 목표 c에 대한 검색 창에 텍스트를 입력하는 동안 앱이 충돌합니다.

분류에서Dev

인터페이스를 참조하면 내 앱이 충돌합니다 (android / libgdx).

분류에서Dev

앱 아이콘을 클릭하는 동안 앱이 충돌합니다.

분류에서Dev

새로운 의도를 시작할 때 Android 앱이 충돌합니다

분류에서Dev

SensorManager.registerListener를 등록 할 때 내 Android 앱이 충돌합니다.

분류에서Dev

스레드를 실행하면 Android에서 앱이 충돌합니다.

분류에서Dev

DownloadManager를 사용하여 비디오 파일을 다운로드하는 동안 Android 10에서 응용 프로그램이 충돌합니다.

분류에서Dev

Android 앱이 충돌합니다. 이유를 모르겠다

분류에서Dev

Unity 3D에서 드래그하는 동안 GameObject를 사용할 때 충돌을 감지하는 방법이 BoxCollider 2D와 충돌합니다.

분류에서Dev

Unity 3D에서 드래그하는 동안 GameObject를 사용할 때 충돌을 감지하는 방법이 BoxCollider 2D와 충돌합니다.

분류에서Dev

앱이 디버그 모드에서 작동하지만 java.lang.RuntimeException : Android를 표시하는 릴리스 APK와 충돌합니다.

분류에서Dev

버튼을 클릭하면 Android Studio에서 앱이 충돌합니다. Appname이 작동을 멈췄습니다.

분류에서Dev

SQLite 데이터를 저장하려고 할 때 내 Android 앱이 충돌합니다.

분류에서Dev

PolarSSl bignum.c는 JNI를 사용하는 동안 Android 5.0 이상에서 충돌을 일으 킵니다.

분류에서Dev

카메라에서 이미지를 가져 오는 동안 Android 응용 프로그램이 삼성 장치에서만 충돌합니다.

분류에서Dev

Firefox Developer Edition의 성가신 동작-JS를 디버깅하는 동안 많은 충돌이 발생합니다.

분류에서Dev

Toast.makeText를 Android Studio의 비동기 스레드에서 호출 할 때 앱 충돌이 발생합니까?

분류에서Dev

emailIntent Android를 통해 이미지를 첨부 할 때 Gmail 앱이 충돌합니다.

분류에서Dev

텍스트 및 이미지를 사용하여 사용자 지정 목록보기를 만드는 동안 앱이 충돌합니다.

분류에서Dev

파일에서 데이터를 읽으려고 할 때 Android 앱이 계속 충돌합니다.

분류에서Dev

에뮬레이터를 실행할 때 내 Android 앱이 계속 충돌합니다.

Related 관련 기사

  1. 1

    Android의 SQLite 데이터베이스에 데이터를 삽입하는 동안 앱이 충돌합니다.

  2. 2

    Fragment에서 Google지도를 사용하는 동안 앱이 충돌합니다.

  3. 3

    onClickListener를 설정하려고하면 앱이 충돌합니다.

  4. 4

    ImageView에 onClickListener를 추가하면 앱이 충돌합니다.

  5. 5

    SharedPreferences.contains ()를 사용할 때 Android 앱이 충돌합니다.

  6. 6

    Android에서 gridview를 사용하는 동안 응용 프로그램이 충돌합니다.

  7. 7

    알림을로드하는 동안 앱이 충돌합니다.

  8. 8

    다음 Android 활동에 버튼을 연결하면 앱이 충돌합니다.

  9. 9

    tableview 목표 c에 대한 검색 창에 텍스트를 입력하는 동안 앱이 충돌합니다.

  10. 10

    인터페이스를 참조하면 내 앱이 충돌합니다 (android / libgdx).

  11. 11

    앱 아이콘을 클릭하는 동안 앱이 충돌합니다.

  12. 12

    새로운 의도를 시작할 때 Android 앱이 충돌합니다

  13. 13

    SensorManager.registerListener를 등록 할 때 내 Android 앱이 충돌합니다.

  14. 14

    스레드를 실행하면 Android에서 앱이 충돌합니다.

  15. 15

    DownloadManager를 사용하여 비디오 파일을 다운로드하는 동안 Android 10에서 응용 프로그램이 충돌합니다.

  16. 16

    Android 앱이 충돌합니다. 이유를 모르겠다

  17. 17

    Unity 3D에서 드래그하는 동안 GameObject를 사용할 때 충돌을 감지하는 방법이 BoxCollider 2D와 충돌합니다.

  18. 18

    Unity 3D에서 드래그하는 동안 GameObject를 사용할 때 충돌을 감지하는 방법이 BoxCollider 2D와 충돌합니다.

  19. 19

    앱이 디버그 모드에서 작동하지만 java.lang.RuntimeException : Android를 표시하는 릴리스 APK와 충돌합니다.

  20. 20

    버튼을 클릭하면 Android Studio에서 앱이 충돌합니다. Appname이 작동을 멈췄습니다.

  21. 21

    SQLite 데이터를 저장하려고 할 때 내 Android 앱이 충돌합니다.

  22. 22

    PolarSSl bignum.c는 JNI를 사용하는 동안 Android 5.0 이상에서 충돌을 일으 킵니다.

  23. 23

    카메라에서 이미지를 가져 오는 동안 Android 응용 프로그램이 삼성 장치에서만 충돌합니다.

  24. 24

    Firefox Developer Edition의 성가신 동작-JS를 디버깅하는 동안 많은 충돌이 발생합니다.

  25. 25

    Toast.makeText를 Android Studio의 비동기 스레드에서 호출 할 때 앱 충돌이 발생합니까?

  26. 26

    emailIntent Android를 통해 이미지를 첨부 할 때 Gmail 앱이 충돌합니다.

  27. 27

    텍스트 및 이미지를 사용하여 사용자 지정 목록보기를 만드는 동안 앱이 충돌합니다.

  28. 28

    파일에서 데이터를 읽으려고 할 때 Android 앱이 계속 충돌합니다.

  29. 29

    에뮬레이터를 실행할 때 내 Android 앱이 계속 충돌합니다.

뜨겁다태그

보관