【发布时间】:2011-06-05 00:29:07
【问题描述】:
我将onClickListener 和onLongClickListener 用于ListView 中的TextView。我看到在 Android 1.6 中,长单击侦听器与 on click 侦听器一起被触发,这意味着当我长按时都会触发两者。但在未来的版本中并非如此。有什么解决办法吗?
@Override
public View getView(int position, View convertView, ViewGroup parent) {
if (convertView == null) {
LayoutInflater inflater = getLayoutInflater();
row = inflater.inflate(R.layout.row, parent, false);
}
TextView tv = (TextView) row.findViewById(R.id.tv);
tv.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
showMessage();
}
});
tv.setOnLongClickListener(new View.OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
showLongMessage();
}
});
}
【问题讨论】:
-
什么“修复”?它在 1.6 中同时触发的事实肯定是一个错误。
-
通过修复,我的意思是,有什么办法可以防止这个问题。
-
它们的调用顺序是否一致?哪个?
-
当您进行长按时,回调是否在完全相同的时间被调用?
-
首先执行longClick事件,然后执行click事件。
标签: android listview onlongclicklistener