2012-08-28 137 views
1

嗨,這可能聽起來像一個愚蠢的問題,但它已經擾亂了我幾天,我還沒有找到在互聯網上的答案。在Android Listview中不覆蓋onItemclick方法是否有其他方法可以獲取行的位置。獲取行位置

+0

是有不同的方式。你什麼時候想獲得這個職位? –

+0

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

+0

感謝懶惰的忍者我想獲得的位置,當我點擊一個列表視圖按鈕,因爲你知道這將禁用onitemclick選項 – user1534409

回答

1

我使用setTag()/ getTag()方法用於獲取項目的位置。在使用setTag(「位置」)方法的項目作爲行項目的標籤列表適配器設置位置(在你的情況下按鈕)的getView()方法。
當任一排按鈕被點擊的onClick()方法將被稱爲該按鈕,在onclick()方法,你可以使用getTag()方法來獲取位置。對所有行按鈕使用與onClick例程相同的方法。

示例代碼:列表項可以是這樣的

<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 View getView (int position, View convertView, ViewGroup parent) { 
    ... 
    ... 
    button.setTag(position); 
    ... 
} 

的onClick程序可能會是像這樣:

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

嗨,我使用simplecursoradapter綁定此listview我需要的位置能夠捕獲該行中的數據,不綁定到一些文本框您所給予我的解決方案目前正在工作而不是它給出錯誤非法stateexception可以幫助我進一步 – user1534409

+0

抱歉打擾你真的很感謝 – user1534409

+0

所以你想達到這個目標嗎? – karn