由于我使用的是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中使用它。
答案 0 :(得分:5)
很遗憾没人帮忙。
嗯,经过几个小时的研究,我找到了解决方案,这简直太容易了。我希望它能引导将来遇到同样问题的人。
基本上,我做了空的ListView,并给了我pushDownListView所具有的所有值。之后,我将其注册为创建功能。几行代码:
pullToRefreshView = (PullToRefreshListView) findViewById(R.id.animelist);
ListView lv1 = pullToRefreshView.getRefreshableView();
registerForContextMenu(lv1);
lv1.setAdapter(anime_list_adapter);
registerForContextMenu(lv1);