안드로이드 개발 질문/답변
(글 수 45,052)
package exam.SelfSos;
import java.util.ArrayList;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.Toast;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.Toast;
public class Configuration extends Activity {
ArrayList<String> Items;
ArrayAdapter<String> Adapter;
ListView list;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.configuration);
//데이터 원본 준비
Items = new ArrayList<String>();
Items.add("타이머 시간 설정");
Items.add("수신번호 등록");
Items.add("비밀번호 설정");
//어댑터 준비
Adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, Items);
//어댑터 연결
ListView list = (ListView)findViewById(R.id.configuration_list);
list.setAdapter(Adapter);
list.setChoiceMode(ListView.CHOICE_MODE_SINGLE);
list.setOnItemClickListener(mItemClickListener);
AdapterView.OnItemClickListener mItemClickListener = new AdapterView.OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view, int position, long id){
String mes;
mes = "Select Item =" + Items.get(position);
Toast.makeText(Configuration.this, mes, Toast.LENGTH_SHORT).show();
}
};
ArrayList<String> Items;
ArrayAdapter<String> Adapter;
ListView list;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.configuration);
//데이터 원본 준비
Items = new ArrayList<String>();
Items.add("타이머 시간 설정");
Items.add("수신번호 등록");
Items.add("비밀번호 설정");
//어댑터 준비
Adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, Items);
//어댑터 연결
ListView list = (ListView)findViewById(R.id.configuration_list);
list.setAdapter(Adapter);
list.setChoiceMode(ListView.CHOICE_MODE_SINGLE);
list.setOnItemClickListener(mItemClickListener);
AdapterView.OnItemClickListener mItemClickListener = new AdapterView.OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view, int position, long id){
String mes;
mes = "Select Item =" + Items.get(position);
Toast.makeText(Configuration.this, mes, Toast.LENGTH_SHORT).show();
}
};
}
}
리스트뷰에서 각 항목을 클릭해서 어떤 이벤트를 주려고 하는데요.
mItemClickListener에서 오류가 생겨요. 오류는 mItemClickListener cannot be resolved 라고 뜨는데 왜 오류가 생기는지 잘 모르겠어서요....
제가 초보라 블로그나 책 사이트등을 돌아다니면서 보고 따라하는 수준인데 도저히 무슨 오류인지 잘 모르겟어요.
아시는분 좀 도와주세요~




그 오류는 해당 리스너를 찾을수 없거나 변수명이 오타인 경우가 대부분이죠.
위의 경우는 mItemClickListener의 선언이 onCreate의 지역변수로 되어있는데요...
그렇게 된다면 list.setOnItecmClickListener(mItemOnclickListener); 를 리스너 선언보다 아래에 둬야죠.
int i = 5;
if(i < 0) { i = -i }
위처럼 해야지..
if(i < 0) {i = -i }
int i = 5;
요렇게 하면 안되듯이요 ...
그리고 추가로 말씀드리면 이벤트 리스너 선언과 정의는 지역변수 영역 보다는 인스턴스 영역으로 빼주시는게 좋습니다. 위의 경우는 큰 문제가 없지만, 액티비티 생명주기를 공부하시면 이해하실 수 있을 겁니다.