2011-10-31 48 views
0
class MyActivity extends Activity implements OnScrollListener, OnItemClickListener { 
... 
listView.setOnItemClickListener(this); 
listView.setOnScrollListener(this); // why not work with previous line? 
... 

加入ListView.setOnScrollListener後(這個)Android:不能同時設置:setOnItemClickListener setOnScrollListener?

onItemClick(...)不再觸發。

有人知道爲什麼嗎?

謝謝。

+0

嘗試:http://stackoverflow.com/questions/1821871/android-how-to-fire-onlistitemclick-in-listactivity-with-buttons-in-list 加入上row.xml 機器人:可聚焦= 「false」 android:focusableInTouchMode =「false」 仍然無法正常工作。 – user873275

回答

2

我不明白爲什麼它不應該工作,

試試這個:

getListView().setOnScrollListener(onAnswersScrolled); 
    getListView().setOnItemClickListener(onAnswerClicked); 

private OnItemClickListener onAnswerClicked = new OnItemClickListener() { 

     @Override 
     public void onItemClick(AdapterView<?> parent, View view, int position, 
       long id) { 
      // 
       Intent i = new Intent(); 

       setResult(RESULT_OK, i); 
       finish(); 
     } 

    }; 

    private OnScrollListener onAnswersScrolled = new OnScrollListener() { 

     @Override 
     public void onScrollStateChanged(AbsListView view, int scrollState) { 
      // not used 
     } 

     @Override 
     public void onScroll(AbsListView view, int firstVisibleItem, 
       int visibleItemCount, int totalItemCount) { 
      // do something 
      } 
     } 
    }; 

source

0

試試這個。這是我的代碼來顯示一個自定義的listView。這個對我有用。

public class MyActivity extends ListActivity implements OnScrollListener { 

MyAdapter adapter= new MyAdapter(this); 

protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setListAdapter(adapter); 
    getListView().setOnItemClickListener(this); 
    getListView().setOnScrollListener(this); 
} 

public class MyAdapter extends BaseAdapter{ 

    private LayoutInflater mInflater; 
    ViewHolder holder = null; 

    public MyAdapter(Context context){ 
     this.mInflater = LayoutInflater.from(context); 
    } 
    @Override 
    public int getCount() { 
     // TODO Auto-generated method stub 
     return mData.size(); 
    } 

    @Override 
    public Object getItem(int arg0) { 
     // TODO Auto-generated method stub 
     return null; 
    } 

    @Override 
    public long getItemId(int arg0) { 
     // TODO Auto-generated method stub 
     return 0; 
    } 

    @Override 
    public View getView(int position, View convertView, ViewGroup parent) { 
     /**Original holder 
     * 
     * 
     * */ 
     //ViewHolder holder = null; 
     if (convertView == null) { 

      holder=new ViewHolder(); 

     }else { 

      holder = (ViewHolder)convertView.getTag(); 
     } 

     return convertView; 
    } 

    class myButtonListener implements OnClickListener { 
     private int position; 


     myButtonListener(int pos) { 
      position = pos; 
     } 

     @Override 
     public void onClick(View v) { 
      int vid=v.getId(); 

     } 
    } 

} 

希望它有幫助。