mListView.setOnItemClickListener
@dheeraj-bhaskarが暗示したように、ListFragmentをフラグメントから拡張する場合、アクティビティが作成される前に呼び出されないことがわかっている場合、2つの素晴らしいソリューションがありました。このソリューションにより、アクティビティが作成されたときに確実に設定されます
@Override
public void onActivityCreated(Bundle savedInstanceState)
{
super.onActivityCreated(savedInstanceState);
mListView.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int position, long rowId) {
// Do the onItemClick action
Log.d("ROWSELECT", "" + rowId);
}
});
}
ListFragment のソースコードを見ているときに、これに出くわしました
public class ListFragment extends Fragment {
...........................................
................................................
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);
}
};
.................................................................
........................................................................
public void onListItemClick(ListView l, View v, int position, long id)
{
}
}
onItemClickListener
オブジェクトがアタッチonListItemClick()
され、まったく同じように機能する他の同様のソリューションとして、オーバーライドすることを呼び出しますonListItemClick()
@Override
public void onListItemClick(ListView l, View v, int position, long rowId) {
super.onListItemClick(l, v, position, id);
// Do the onItemClick action
Log.d("ROWSELECT", "" + rowId);
}