首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >OnItemLongClickListener未定义

OnItemLongClickListener未定义
EN

Stack Overflow用户
提问于 2014-08-09 08:41:07
回答 1查看 392关注 0票数 0

我使用这个库:chrisbanes/Android-PullToRefresh

这是我的代码:

代码语言:javascript
复制
pullToRefreshView = (PullToRefreshListView) findViewById(R.id.pull_to_refresh_listview);

ArrayList<String> myStringArray1 =  new ArrayList<String>();
myStringArray1.add("something 1");
myStringArray1.add("something 2");
myStringArray1.add("something 3");
myStringArray1.add("something 4");

ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
            android.R.layout.simple_list_item_1, android.R.id.text1, myStringArray1);


pullToRefreshView.setAdapter(adapter);

pullToRefreshView.setOnRefreshListener(new OnRefreshListener<ListView>() {
        @Override
        public void onRefresh(PullToRefreshBase<ListView> refreshView) {
            // Do work to refresh the list here.
            Log.e("myLogs", "Refresh");  
        }           
    });

当我试图做一个

代码语言:javascript
复制
MyPullToRefreshListView.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {

    @Override
    public boolean onItemLongClick(AdapterView<?> arg0,
        View arg1, int arg2, long arg3) {
        // TODO Auto-generated method stub
        return false;
    }
  }
);

我有个错误:

代码语言:javascript
复制
The method setOnItemLongClickListener(new AdapterView.OnItemLongClickListener(){}) is undefined for the type MyPullToRefreshListView

我能处理好这种情况吗?

编辑1:

这是我的MyPullToRefreshListView课程:

代码语言:javascript
复制
import android.content.Context;
import android.util.AttributeSet;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.AdapterView.OnItemLongClickListener;

import com.handmark.pulltorefresh.library.PullToRefreshListView;

public class MyPullToRefreshListView extends PullToRefreshListView {


    public MyPullToRefreshListView(Context context) {
        this(context, null);
    }

    public MyPullToRefreshListView(Context context, AttributeSet attrs) {
       this(context, attrs, android.R.attr.listViewStyle);
    }

    public MyPullToRefreshListView(Context context, AttributeSet attrs, int defStyle) {
       super(new ContextWrapperEdgeEffect(context), attrs);
    }
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-08-09 08:46:24

你应该遵循这个答案:如何在我的LongCLicks上启用ListView?,它写得很好.

您的问题可能是您实现了糟糕的OnItemLongClickListener。在执行上述步骤之前,请尝试更改

代码语言:javascript
复制
new AdapterView.OnItemLongClickListener(){}

代码语言:javascript
复制
new View.OnItemLongClickListener(){}

//编辑:本源一致,您需要实现它如下:

代码语言:javascript
复制
//mPullRefreshListView.setOn
mPullRefreshListView.getRefreshableView()
  .setOnItemLongClickListener(new OnItemLongClickListener() {

      @Override
      public boolean onItemLongClick(AdapterView<?> arg0,
        View arg1, int arg2, long arg3) {
            // TODO Auto-generated method stub
            Log.i("test", "item long cliked");
            initiatePopupWindow(arg1, arg1.getTop(), arg1.getHeight());
            return false;
        }
  });

所以关键是调用.getRefreshableView()

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25216769

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档