长按不起作用(使用下推刷新库)

时间:2013-05-16 13:27:49

标签: android push

由于我使用的是chrisbanes push down to refresh库,我不得不删除普通的listview并将其替换为新的。在那之后,长时间推送listview项目不起作用,并始终刷新。似乎信息返回总是为null,因为他没有获取信息,我实际点击的是什么,这是不好的。一直在尝试修复它,但没有成功..任何帮助都表示赞赏。

xml layout:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >


<ProgressBar
    android:id="@+id/loadingbar"
    style="?android:attr/progressBarStyleLarge"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="center"
    android:visibility="gone" />

<TextView
    android:id="@+id/loading_text"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="center"
    android:text="Loading... Hang in there!"
    android:visibility="gone" />

 <com.handmark.pulltorefresh.library.PullToRefreshListView
android:id="@+id/animelist"
android:layout_height="fill_parent"
android:layout_width="fill_parent" />

和longpush代码:

/** This will be invoked when an item in the listview is long pressed */
    @Override
    public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) {

        Log.d("readInfo", "LONG CLICK!!"); 
        AdapterView.AdapterContextMenuInfo info = (AdapterView.AdapterContextMenuInfo) menuInfo;
        Log.d("prereadlongclickinfo", "test"); 
        favorites = readFavoritesList();
        parsedFavorites = parse(favorites);
        Log.d("readlongclickinfo", "test2"); 
        Log.d("readlongclickinfo", "test: "); 

        /*boolean favorited = false;
        for(String favorite : parsedFavorites){
            if(favorite.equals(anime_list.get(info.position).seriaal)){
                menu.add(0, 2, 1, R.string.removeFavorite);
                favorited = true;
                break;
            }
        }
        if(!favorited) {
            menu.add(0, 1, 1, R.string.addFavorite);
            menu.add(0, 3, 1, R.string.addBlacklist);
        }*/
        menu.add(0, 4, 1, R.string.openWebpage);
        super.onCreateContextMenu(menu, v, menuInfo);
    }

另外,我使用的是自定义适配器,我存储了有关每个listitem行项的所有信息,我需要在longpush中使用它。

1 个答案:

答案 0 :(得分:5)

很遗憾没人帮忙。

嗯,经过几个小时的研究,我找到了解决方案,这简直太容易了。我希望它能引导将来遇到同样问题的人。

基本上,我做了空的ListView,并给了我pushDownListView所具有的所有值。之后,我将其注册为创建功能。几行代码:

pullToRefreshView = (PullToRefreshListView) findViewById(R.id.animelist);
        ListView lv1 = pullToRefreshView.getRefreshableView();

    registerForContextMenu(lv1);

    lv1.setAdapter(anime_list_adapter);

    registerForContextMenu(lv1);