Я пытаюсь захватить событие с длинным кликом и отображать окно предупреждения элементов внутри вида списка. Я делаю это с помощью футляра-переключателя ... который был работающ отлично.случай переключателя, работающий во втором длинном нажатии, но не при первом длинном нажатии
Издание:
, когда я долгое нажатие элементы внутри ListView в first long press
не отображается окно предупреждения, но если я отображается то же second time
окно предупреждения .. Я не мог понять поведение ...
Могут ли эксперты помочь мне с этим, пожалуйста, сообщите мне, где я делаю неправильно, и также исправлю меня, чтобы при первом нажатии мне нужно было установить окно предупреждения.
Код:
Listview.setOnItemLongClickListener(new OnItemLongClickListener() {
@Override
public boolean onItemLongClick(final AdapterView<?> arg0, View arg1,
int arg2, long arg3) {
// TODO Auto-generated method stub
System.out.println("Inside listview long click");
final ViewHolder myviewholder3=new ViewHolder();
myviewholder3.cb=(CheckBox) arg1.findViewById(R.id.checkBox1);
myviewholder3.view1=(Button) arg1.findViewById(R.id.button1);
System.out.println(arg1.getId());
System.out.println("cb"+R.id.checkBox1);
System.out.println(arg1.getId());
System.out.println("butt"+R.id.button1);
switch(arg1.getId()){
case R.id.checkBox1:
myviewholder3.cb.setOnLongClickListener(new OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
// TODO Auto-generated method stub
AlertDialog.Builder Alert1=new AlertDialog.Builder(sm.this);
StockAlert.setPositiveButton("Ok", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
}
});
Alert1.show();
return false;
}
});
break;
case R.id.button1:
myviewholder3.view1.setOnLongClickListener(new OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
// TODO Auto-generated method stub
AlertDialog.Builder ViewDetailAlert=new AlertDialog.Builder(sm.this);
Alert2.setPositiveButton("Ok", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
}
});
Alert2.show();
return false;
}
});
break;
default:
System.out.println("No Selection");
}
return false;
}
});
Слушатель-слушатель устанавливается только после первого длительного нажатия на элемент списка. – Simas
@ user3249477 ok Спасибо за ваш ответ ... но как я могу это преодолеть ... – Siva
вам нужно зарегистрировать слушателей для держателей, когда они будут созданы. Совет. Внутри «getView» адаптера. – Simas