2011-10-11 3 views
0

예외를 throw하면 setOnItemClickListener를 사용하면 이제 예외가 발생합니다. 이전에는 아무런 문제가 없었으며 설명서에 예외가 표시되지 않았습니다. 아무도 문제가 무엇인지 말해 줄 수 있습니까? 하나는 아주 간단해야한다는setOnItemClickListener가 안드로이드 용 프로그래밍에서

package com.name.magicwindow; 

import android.app.Activity; 
import android.os.Bundle; 
import android.view.View; 
import android.widget.AdapterView; 
import android.widget.AdapterView.OnItemClickListener; 
import android.widget.ListView; 
import android.widget.TextView; 
import android.widget.Toast; 

public class MagicWindowActivity extends Activity { 
    /** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 

     ListView mainMenu; 
     try{ 
      mainMenu = (ListView)findViewById(R.id.main_menu_list); 

      try{ 
       mainMenu.setOnItemClickListener(new OnItemClickListener() 
       { 
        public void onItemClick(AdapterView<?> parent,View view,int position,long id) 
        { 
         // When clicked, show a toast with the TextView text 
         Toast.makeText(getApplicationContext(), ((TextView) view).getText(),Toast.LENGTH_SHORT).show(); 
        } 
       }); 
      }catch(Exception e) 
      { 
       Toast.makeText(getApplicationContext(), "could not set listener",Toast.LENGTH_LONG).show(); 
      } 
     }catch(Exception e) 
     { 
      Toast.makeText(getApplicationContext(), "could not find listview",Toast.LENGTH_LONG).show(); 
     } 


     setContentView(R.layout.main); 
    } 
} 
+0

logcat에서 스택 트레이스를 게시 할 수 있습니까? –

+0

토스트 대신 실제 로그 출력을 삽입하면 잘못된 결과를 볼 수 있습니다. 예를 들면 : Log.e ("MyActivity/outerTry.", e.getMessage(), e); –

답변

2

:

당신은 당신이 findViewById()를 사용하기 전에 setContentView(R.layout.main)를 호출해야합니다.
그래서 귀하의 활동은 내용 (보기 계층 구조)이 무엇인지 압니다.

+0

고마워요! 백엔드에 연결하기 전에 UI를 표시하는 것이 카운터 직관적 인 것처럼 보였지만 그만! : D – user980058

+0

그것은 그것을 표시하는 것이 아닙니다. 어떤 뷰 계층 구조를 사용할 지 선언합니다. 'findViewById'는 주어진 ID를 찾을 곳을 어떻게 알 수 있습니까? – Knickedi

관련 문제