OnLongClick停止OnClick

我正在使用Listview。 在实现OnLongClick之前,我的onListItemClick工作正常,但是现在,在实现OnLongClick之后,长按点击工作和正常列表点击不做任何事情。 它似乎隐藏了你已经工作的onListItemClick()函数的暴露

任何人都可以看到原因/建议解决方案?

public class CombChange extends ListActivity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setListAdapter(new ListEdit(this, symbols)); @Override protected void onListItemClick(ListView l, View v, int position, long id) { String selectedValue = (String) getListAdapter().getItem(position); if (lastPressed.equals(selectedValue) ){ count++;} } public class ListEdit extends ArrayAdapter implements OnLongClickListener{ private final Context context; private final String[] values; public ListEdit(Context context, String[] values) { super(context, R.layout.activity_comb_change, values); this.context = context; this.values = values; } @Override public View getView(int position, View convertView, ViewGroup parent) { LayoutInflater inflater = (LayoutInflater) context .getSystemService(Context.LAYOUT_INFLATER_SERVICE); View rowView = inflater.inflate(R.layout.activity_comb_change, parent, false); TextView textView = (TextView) rowView.findViewById(R.id.label); ImageView imageView = (ImageView) rowView.findViewById(R.id.logo); textView.setText(values[position]); rowView.setOnLongClickListener(new OnLongClickListener(){ public boolean onLongClick(View arg0) { context.startActivity(new Intent(context,RestoreOriginal.class)); return false; } }); // Change icon based on name String s = values[position]; if (s.equals("a")) { imageView.setImageResource(R.drawable.a); return rowView; } } 

我认为你不应该做rowView.setOnLongClickListener

尝试这样的事情:

 this.getListView().setLongClickable(true); this.getListView().setOnItemLongClickListener(new OnItemLongClickListener() { public boolean onItemLongClick(AdapterView parent, View v, int position, long id) { // whatever you wanna do return true; } }); 

我从如何捕获ListActivity的Listeview项的长按事件中获取代码?

希望这可以帮助。