На самом деле я думал, что ListView
из ListFragment был бы создан в OnActivityCreated
.Добавление OnTouchListener в каждую строку ListView в ListFragment
@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);
}
Тогда я получить доступ к ListView
в onResume
добавить OnTouchListener
к каждой строке в списке (= дети) Однако есть дети не добавлены в 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
. (Так как нет детей в ListView до)
@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
ловит прикосновения - чего я просто не хочу.
Все, что мне нужно, чтобы добавить OnTouchListeners
к каждой строке в ListView
с САМОГО НАЧАЛА при отображении списка, так что я могу делать все, что я хочу, вместо того, чтобы позволить OnListItemClick
обрабатывать событие.
(я на самом деле хочу, чтобы перетащить линию вокруг, нажимая на линию - OnListItemClick
только начинается после того, как линия была нетронутым)
Большое спасибо!