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

ListFragment 에서 getListview 생성시 오류가나요 도와주세요...!!

–1 추천

리스트뷰에 setOnItemClickListener 를 주어 이벤트를 주려고합니다..

아래와 같이 빨간색으로 칠한부분 ListView lv = getListView(); 를 추가하려하면

오류는 나지 않으나, 어플 실행시에는 바로 종료되버립니다..

클릭 이벤트를 주지 않기위해 빨간부분을 삭제하면 잘되요...

import android.os.Bundle; 
import android.os.StrictMode; 
import android.support.v4.app.ListFragment; 
import android.view.LayoutInflater; 
import android.view.View; 
import android.view.ViewGroup; 
import android.widget.ListAdapter; 
import android.widget.SimpleAdapter; 
  
import org.w3c.dom.Document; 
import org.w3c.dom.Element; 
import org.w3c.dom.NodeList; 
  
import java.util.ArrayList; 
import java.util.HashMap; 
  
public class Main_talkActivity extends ListFragment { 
  
    static final String URL = "~~~url주소~~~"; 
  
    static final String KEY_ITEM = "item"; // parent node 
    static final String KEY_NAME = "name"; 
    static final String KEY_DATE = "date"; 
    static final String KEY_CONTENT = "content"; 
  
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, 
                             Bundle savedInstanceState) { 
        View talkview = inflater.inflate(R.layout.main_talk, container,false); 
        StrictMode.setThreadPolicy(new StrictMode.ThreadPolicy.Builder().permitNetwork().build()); 
        listview(); 
  
        return talkview; 
    } 
  
    public void listview(){ 
  
        ArrayList<HashMap<String, String>> menuItems = new ArrayList<HashMap<String, String>>(); 
  
        XMLParser parser = new XMLParser(); 
        String xml = parser.getXmlFromUrl(URL); 
        Document doc = parser.getDomElement(xml); 
  
        NodeList nl = doc.getElementsByTagName(KEY_ITEM); 
        // looping through all item nodes <item> 
        for (int i = 0; i < nl.getLength(); i++) { 
            // creating new HashMap 
            HashMap<String, String> map = new HashMap<String, String>(); 
            Element e = (Element) nl.item(i); 
  
            map.put(KEY_NAME, parser.getValue(e, KEY_NAME)); 
            map.put(KEY_DATE, parser.getValue(e, KEY_DATE)); 
            map.put(KEY_CONTENT, parser.getValue(e, KEY_CONTENT)); 
  
            menuItems.add(map); 
        } 
  
        ListAdapter adapter = new SimpleAdapter(getActivity(), menuItems, 
                R.layout.main_talk_lv, 
                new String[] { KEY_NAME, KEY_DATE, KEY_CONTENT }, new int[] { 
                R.id.talk_name, R.id.talk_date, R.id.talk_content }); 
  
        setListAdapter(adapter); 
  
 ListView lv = getListView(); 
 lv.setOnItemClickListener(new OnItemClickListener() { 
  
   @Override
   public void onItemClick(AdapterView<?> parent, View view, 
     int position, long id) { 
    클릭할시 이벤트 
   } 
 }); 
  
    } 
  
}

 

ListView lv = getListView();
 lv.setOnItemClickListener(new OnItemClickListener() {
 
   @Override
   public void onItemClick(AdapterView<?> parent, View view,
     int position, long id) {
    클릭할시 이벤트
   }
 });

 

비밀소년 (1,010 포인트) 님이 2015년 5월 31일 질문
logcat please

답변 달기

· 글에 소스 코드 보기 좋게 넣는 법
· 질문에 대해 추가적인 질문이나 의견이 있으면 답변이 아니라 댓글로 달아주시기 바랍니다.
표시할 이름 (옵션):
개인정보: 당신의 이메일은 이 알림을 보내는데만 사용됩니다.
스팸 차단 검사:
스팸 검사를 다시 받지 않으려면 로그인하거나 혹은 가입 하세요.
...