PullToRefreshListView onItemLongClick 事件失效

PullToRefreshListView 设置长按事件,不知道大家有没有尝试过,

今天我尝试了下发现在PullToRefreshListView setOnItemLongClick的时候就没有这个方法,感觉到很奇怪,按理说不应该啊,然后就找了下demo代码发现:

@Overridepublic void onCreate(Bundle savedInstanceState) { 

   super.onCreate(savedInstanceState);  

  setContentView(R.layout.activity_pulltorefresh);    

mPullRefreshListView = (PullToRefreshListView)findViewById(R.id.pull_refresh_list);    // Set a listener to be invoked when the list shouldbe refreshed.   

 mPullRefreshListView.setOnRefreshListener(new OnRefreshListener<ListView>() {        

@Override        

public voidonRefresh(PullToRefreshBase<ListView> refreshView) {            String label =DateUtils.formatDateTime(getApplicationContext(), System.currentTimeMillis(),                    DateUtils.FORMAT_SHOW_TIME | DateUtils.FORMAT_SHOW_DATE | DateUtils.FORMAT_ABBREV_ALL);            // Update the LastUpdatedLabel            

refreshView.getLoadingLayoutProxy().setLastUpdatedLabel(label);            // Do work to refresh the list here.            new GetDataTask().execute();        

}    });    

// Add an end-of-list listener    

mPullRefreshListView.setOnLastItemVisibleListener(new OnLastItemVisibleListener() {        

@Override        publicvoid onLastItemVisible() {            

Toast.makeText(PullToRefresh.this, "End of List!", Toast.LENGTH_SHORT).show();        

}    });    

ListView actualListView = mPullRefreshListView.getRefreshableView();    

// Need to use the Actual ListView when registering for Context Menu    

registerForContextMenu(actualListView);    

mListItems = newLinkedList<String>();   

mListItems.addAll(Arrays.asList(mStrings));    

mAdapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1, mListItems);    

/**     * Add Sound Event Listener     */   

SoundPullEventListener<ListView> soundListener = new SoundPullEventListener<ListView>(this);    soundListener.addSoundEvent(State.PULL_TO_REFRESH, R.raw.pull_event);    soundListener.addSoundEvent(State.RESET, R.raw.reset_sound);    soundListener.addSoundEvent(State.REFRESHING, R.raw.refreshing_sound);    mPullRefreshListView.setOnPullEventListener(soundListener);    

// You can also just use setListAdapter(mAdapter) or    // mPullRefreshListView.setAdapter(mAdapter)    actualListView.setAdapter(mAdapter);}

这里还是不知道是为什么,然后上网搜了下找到了一段很有意思的代码:ListView actualListView =mPullRefreshListView.getRefreshableView();

actualListView.setOnLongClickListener(new OnLongClickListener() {  

 @Override    public boolean onLongClick(View v) {        

Log.d("privet ia long click", "yes");        

return true;    }});

看到这里感觉好像明白了点,试了下结果长按事件出来了。这到底是为什么呢?因为长按事件是响应在listView Item上的,所以我们在设置长按事件的时候先要获取到PullRefreshListView中的listView,然后在获取到的listview中进行长按事件的注册,这样就ok了。在其他的操作上也可以按照这个思路进行处理。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值