実際には、ListFragmentのListView
がOnActivityCreated
に作成されていると思いました。ListFragmentのListViewの各行にOnTouchListenerを追加する
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
...initialize the namesList
ArrayAdapter<String> adapter = new ArrayAdapter<String>(getActivity(),
android.R.layout.simple_list_item_1, namesList);
setListAdapter(adapter);
}
は、その後、私は(=子供)リストの各行にOnTouchListener
を追加するonResume
にListView
アクセスがまだリストビューに追加子が存在しない - それらが原因上記のコードであるべきであるにもかかわらずonActivityCreated
で期待するはずです。
@Override
public void onResume() {
super.onResume();
ListView lv = getListView();
int n1 = lv.getChildCount();
for (int ii = 0; ii < n1; ii++) {
View lineV = lv.getChildAt(ii);
lineV.setOnTouchListener(new MyTouchListener());
}
}
最後に、OnTouchListenerを追加するチャンスはOnListItemClick
です。 (前リストビューで子が存在しないので)
@Override
public void onListItemClick(ListView l, View v, int position, long id) {
v.setPressed(false);
ListView lv = getListView();
int n1 = lv.getChildCount();
for (int ii = 0; ii < n1; ii++) {
View lineV = lv.getChildAt(ii);
lineV.setOnTouchListener(new MyTouchListener());
}
}
しかし、ここでもOnTouchListeners
はまだ表示ラインに追加されていません。
表示された名前リストのいくつかの行に数回タッチすると、最後にOnTouchListener
が追加され、タッチを傍受します。
しかし、それまでは普通のonListItemClick
がタッチをキャッチしています。これは私が起こりたくないものです。
私に必要なのは、私は私がやりたいの代わりに、OnListItemClick
がイベントを処理させることができるようにリストが表示されたときに最初からListView
に各行にOnTouchListeners
を追加することです。
(私は実際にラインを押しながら周りの線をドラッグしたい - OnListItemClick
ラインがそのままされた後にのみ開始)
多くの感謝!