2012-01-10 115 views
1

我已經使用默認的ArrayAdapter創建了一個列表視圖。但是,要從列表中選擇一個項目,我必須點擊該項目而不僅僅是該行。我怎樣才能改變它,只需點擊項目所在的行而不是項目本身?選擇ListView的行而不是項目

這裏是我的列表視圖代碼:

ListView mListView = (ListView) findViewById(android.R.id.list); 
    mListView.setAdapter(new ArrayAdapter<String>(this, R.layout.row, ans)); 
    mListView.setOnItemClickListener(new OnItemClickListener(){ 
     @Override 
     public void onItemClick(AdapterView<?> arg0, View v, int i, 
       long l) { 
      Log.d(LOG_TAG,"Selected option"+i); 
      startActivity(intent); 
      finish(); 
     } 

    }); 

這裏是爲ListView的XML:

<ListView 
     android:id="@+id/list" 
     android:layout_width="wrap_content" 
     android:layout_height="250dp" 
     android:layout_marginLeft="50dp" 
     android:layout_marginRight="50dp" 
     android:divider="@drawable/list_divider" 
     android:dividerHeight="1dp" /> 

這裏是row.xml:

<TextView xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent" 
style="@style/list_answers" 
/> 

回答

2

更改該行的子視圖包括android:focusable="false"。這將允許您單擊整行。現在,由於每個個人觀點認爲它可以獲得關注,所以它們發生在該行的「頂部」。

P.S.我們真正需要的是ListView的ROW的XML。不是ListView本身。 :)

希望這有助於

FuzzicalLogic

+0

我加入了row.xml你的意思是添加在TextView的? – JustCurious 2012-01-10 21:40:30

+0

是的,先生。這通常是解決這個確切問題的方法。我會經常添加'android:clickable =「false」'來達到很好的效果,但是在大多數情況下,這是不必要的。 – 2012-01-10 23:11:23

+0

如果你的行包含多個視圖,你可以在每個視圖中包含它。 :) – 2012-01-10 23:13:40