2013-05-08 32 views
0

我在我的應用程序中顯示列表。當用戶點擊列表時,它會發送到下一個活動。列表顯示正常,但列表可在小於3.0的版本上單擊,而不能在大於3.0的版本上單擊。我不明白我錯在哪裏。我使用listfragment來顯示列表和重寫方法onListItemClick。我在stackoverflow上嘗試了一些解決方案,但沒有實現我的目標。請有人有解決辦法。android:在3.0版以上的版本中不能點擊Listview?

以下是來自listfragment的onListItemClick方法。

@Override 
    public void onListItemClick(ListView l, View v, int position, long id) { 
     // TODO Auto-generated method stub 
     super.onListItemClick(l, v, position, id); 
     l.setOnItemClickListener(new android.widget.AdapterView.OnItemClickListener() { 

      @Override 
      public void onItemClick(AdapterView<?> arg0, View view, int arg2, 
        long arg3) { 
       Intent href = new Intent(getSherlockActivity(), ProjectDetailActivity.class); 

       String projId = ((TextView) view.findViewById(R.id.projectId)).getText().toString(); 
       String projName = ((TextView) view.findViewById(R.id.projectName)).getText().toString(); 
       Log.v("in itemclickListener", "click"+((TextView) view.findViewById(R.id.projectId)).getText().toString()); 

       getSherlockActivity().startActivity(href); 
      } 
     }); 
    } 

以下是listview.xml

<ListView 
    android:id="@android:id/list" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:layout_marginLeft="1dp" 
    android:divider="@drawable/divider" 
    android:smoothScrollbar="true" 
    android:dividerHeight="1dp" 
    android:scrollbarThumbVertical="@drawable/divider" 
    android:drawSelectorOnTop="false" 
    android:listSelector="@drawable/list_selector" 
    android:clickable="true" 
    > 
</ListView> 
+0

爲什麼你在嵌套onItemClickListener?碎片從SherlockListFragment類中的API級別11 – FrancescoAzzola 2013-05-08 13:52:57

+0

得到支持。我正在使用sherlock庫。 – 2013-05-08 13:58:25

+0

您必須刪除嵌套的偵聽器 – FrancescoAzzola 2013-05-08 14:48:57

回答

3

我認爲下面的方式是不夠的。

listview.setOnItemClickListener(new OnItemClickListener() { 

    public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,long arg3) { 
     // TODO Auto-generated method stub 
    } 
}); 

刪除onListItemClick()方法,寫這樣的oncreate()方法本身。

我希望這會幫助你。

+0

我不會在任何地方寫onListItemClick。同樣的事情我上面實現。 – 2013-05-08 13:58:07

+0

看到你的問題'public void onListItemClick(ListView l,View v,int position,long id)'。這是什麼? – Gunaseelan 2013-05-08 14:00:24

+0

這是來自Listfragment的重寫方法。你說在oncreate方法中寫setOnItemClickListener,但它不起作用。 – 2013-05-08 14:03:42

相關問題