키워드!!: setOnItemClickListener
ListActivity는 ListView와같이 FindViewById를 이용해서 UI 객체를 생성하지 않기때문에 Listener를 적용시킬때 '으잉?'하는 생각을 하게된다.
예)
//일반적인 ListView일때
ListView listView = (ListView)findViewById(R.id.listView);
listView.setOnclickListener( new OnItemClickListener() {
//Do somethings~~
});
//ListActivity를 상속받았을때
class listActivity extends ListActivity {
.....
listActivity....???? //으잉? 객체검색은...
}
그래서 위의 상황과 같이 ListActivity를 상속받아서 ListView를 출력하였을때는 두가지 해결법이 있다.
1. OnItemClickListener를 implements한다
1-1. method overriding한다.
2. implements없이 getListView() 매서드를 이용해서
2-1. 무명클래스를 이용해 method overriding한다.
나는 주로 무명클래스를 이용한 method overriding을 이용하기에 이 방식으로 설명하겠다. 원래 1번 형태로 On..Listener를 implements하던 사람이라면 안알려줘도 이정도 키워드면 알아서 할 것이다.
2번을 사용한 전체 구조는 다음과 같다.
public class MainActivity extends ListActivity {
protected void onCreate(Bundle savedInstanceState) {
getListView().setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
// TODO Auto-generated method stub
Log.d("mstag",""+arg0+" "+arg1+" "+arg2+" "+arg3);
}
});
}
}
getListView() method는
public ListView getListView ()
Get the activity's list view widget.
위와같이 ListView를 return하기때문에 객체생성을 하지않은 listActivity에서 listView를 얻을 수 있는것이다.
그리고 overriding한 onItemClick매서드의 인자는..
Public Methods | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Callback method to be invoked when an item in this AdapterView has been clicked. |
참고.. ListActivity를 상속받기위한 Activity XML은 다음과 같다.
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".MainActivity" >
<ListView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@android:id/list"
/>
</LinearLayout>
'소프트웨어 > Android/Java/Ndk' 카테고리의 다른 글
ANDROID] Back Key 두번눌러서 끄기 (0) | 2013.11.09 |
---|---|
JAVA] String class의 .equals()과 .equalsIgnoreCase()의 차이 (0) | 2013.11.04 |
Android] ListActivity에서 CustomAdapter 생성 (0) | 2013.11.03 |
Android] WifiManager 업데이트( .startScan()) (0) | 2013.11.03 |
Android] Handler사용법 (0) | 2013.11.03 |
Wifi 검색 샘플 소스 (0) | 2013.11.03 |
안드로이드] 액션바 (0) | 2013.09.27 |