ライブラリを更新するために chrisbanesプッシュ ダウンを使用しているため、通常のリストビューを削除して、新しいリストビューに置き換える必要がありました。その後、リストビュー項目を長押ししても機能せず、常にクラッシュします。彼は私が実際にクリックしている情報を取得していないため、info は常に null を返すようです。これは悪いことです。自分で修正しようとしましたが、成功しませんでした..どんな助けでも大歓迎です。
xml レイアウト:
<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" />
そしてロングプッシュコード:
/** 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 行項目に関するすべての情報を格納するカスタム アダプターを使用しています。