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

SimpleAdapter로 만든 ListView에 Onclick이벤트 관련 질문입니다.

0 추천

일단 전체 코드는 이렇습니다.

HashMap<String, String> map = new HashMap<String, String>();

map.put("idx", idx);
map.put("b_idx", b_idx);
map.put("category", category);
map.put("product", product);
map.put("size", size);
map.put("building", building);
map.put("floor", floor);
map.put("position", position);

oslist.add(map);

adapter = new SimpleAdapter(ThirdDetailActivity.this, oslist, R.layout.activity_third_detail_list,
        new String[] {
                "category",
                "product",
                "size",
                "building",
                "floor",
                "position"
        },
        new int[] {
                R.id.processCategory,
                R.id.processProduct,
                R.id.processSize,
                R.id.processBuilding,
                R.id.processFloor,
                R.id.processPosition
        });
listView = (ListView) findViewById(R.id.listView);
listView.setAdapter(adapter);
processAddBtn = (Button) listView.findViewById(R.id.processAddBtn);
processAddBtn.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
        startActivityForResult(intent, 0);
    }
});

 

이 코드에 있는 리스트뷰가 있는데 여기에 버튼이 하나 달려있습니다.

근데 온클릭 리스너에 NullPointerException이 발생합니다. 왜 그러는지는 아는데

어떻게 리스너를 달아줘야할지 모르겠습니다 ㅠ

 

브레인토스트 (880 포인트) 님이 2016년 4월 12일 질문

1개의 답변

0 추천
 
채택된 답변
리스트뷰에 해당버튼은 당연히 존재 하지 않기 때문이죠~~!

어뎁터의 getview 오버라이드 하시면 아이템별 뷰를 넘겨 줍니다. 해당 뷰에서 리스너 처리하시면 됩니다.
ThisPlus (46,920 포인트) 님이 2016년 4월 12일 답변
브레인토스트님이 2016년 4월 12일 채택됨
getview를 오버라이드 하라는게 무슨 말씀이시죠 ㅠ
지금 저코드가 AppCompatActivity를 상속받은 Activityd의 inner클래스인 AsyncTask에 있습니다. getView를 어떻게 오버라이드 할 수 있죠 ??
감사합니다 해결했습니다 ㅎㅎ
...