ごめん。やっぱりAndroid開発は地雷だわ
ListFragmentとやらでアイテムタップを検知しようとsetOnItemClickListenerを弄っていたわけですが、これが半日経っても全く動かない。
StackOverflowを探しまくりAndroid公式のAPIを見てたりして、最終手段はListFragmentのコードを読むしかない、と読みに行ったところ、
final private AdapterView.OnItemClickListener mOnClickListener = new AdapterView.OnItemClickListener() { public void onItemClick(AdapterView<?> parent, View v, int position, long id) { onListItemClick((ListView)parent, v, position, id); } }; /** * This method will be called when an item in the list is selected. * Subclasses should override. Subclasses can call * getListView().getItemAtPosition(position) if they need to access the * data associated with the selected item. * * @param l The ListView where the click happened * @param v The view that was clicked within the ListView * @param position The position of the view in the list * @param id The row id of the item that was clicked */ public void onListItemClick(ListView l, View v, int position, long id) { }
というコードを発掘。
普通のListViewを取得してsetOnItemClickedListenerをするのはだめで、
onListItemClickを継承しろって言うことらしいです。
LongClickのほうはノータッチなのに。
というわけでAndroid開発、Javaとの組み合わせはクソだけど携帯端末で動くものを作れるっていうのは楽しいなーと思ってた自分をどん底に突き落とすコードでした。
仕事でモバイル開発は絶対にやりたくないですね。