2012-08-28 3 views
1

안녕하세요. 어리석은 질문처럼 들릴 수도 있지만 며칠 동안 저를 방해하여 인터넷에서 답변을 찾지 못했습니다. onItemclick 메서드를 재정의하지 않고 안드로이드 Listview에서 행의 위치를 ​​얻을 수있는 다른 방법이 있습니다.안드로이드에서 행 위치 찾기

+0

예 다양한 방법이 있습니다. 언제 지위를 얻고 싶니? –

+0

http://stackoverflow.com/a/5685008/735675 – pixelscreen

+0

게으른 닌자 감사합니다. 내가 목록보기 단추를 클릭 할 때 위치를 얻고 싶습니다.이 경우 onitemclick 옵션을 사용할 수 없습니다. – user1534409

답변

1

항목의 위치를 ​​가져 오는 데 setTag()/getTag() 메서드를 사용합니다. 목록 어댑터의 getView() 메서드에서 setTag ("position") 메서드를 사용하여 행 항목의 태그 (사례 버튼)의 항목 위치를 설정합니다.
어떤 행의 버튼을 클릭하면 해당 버튼에 대해 onClick() 메서드가 호출되고 onClick() 메서드에서는 getTag() 메서드를 사용하여 위치를 가져올 수 있습니다. 모든 행에 대해 onClick 루틴과 동일한 메소드를 사용하십시오.

샘플 코드 :

public View getView (int position, View convertView, ViewGroup parent) { 
    ... 
    ... 
    button.setTag(position); 
    ... 
} 

온 클릭 루틴이 뭔가 수 : 목록 항목은 다음과 같이 될 수있다이

<RelativeLayout 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" > 

<Button 
    android:id="@+id/button1" 
    android:layout_width="200dp" 
    android:layout_height="200dp" 
    android:layout_alignParentTop="true" 
    android:layout_centerHorizontal="true" 
    android:layout_marginTop="117dp" 
    android:background="@drawable/grad" 
    android:onClick="onButtonClick" /> 

의 getView() 메소드 같은 수 좋아요 :

public void onButtonClick(View v) { 
    String tag = v.getTag().toString(); 
    if(tag != null) { 
     int position = Integer.parseInt(tag); 
    } 
    ... 
    ... 
} 
+0

안녕하세요.이 간단한 바인딩을 사용하고 있습니다. listview 내가 텍스트 상자의 일부에 바인딩되지 않은 그 행에있는 데이터를 캡처 할 수 있어야합니다 당신이 나에게 준 솔루션은 현재 그 오류를주는 것은 아닙니다 불법 stateexception 당신이 나를 도울 수있다 – user1534409

+0

미안 해요 당신이 실제로 실제로 덕분에 많이 – user1534409

+0

그래서 이것을 달성하고 싶습니까? – karn