我在instructions from Google之后实现了单行上下文操作栏。说明说要向每个视图添加OnLongClickListener
,因为我使用的是CustomAdapter
,所以我使用此代码在每一行上实现了它:
@Override
public View getView(final int position, View convertView, final ViewGroup parent) {
final ViewHolder holder;
final View tempView = convertView;
if (convertView == null) {
holder = new ViewHolder();
convertView.setOnLongClickListener(new View.OnLongClickListener() {
public boolean onLongClick(View view) {
if (mActionMode != null) {
return false;
}
mActionMode = getSherlockActivity().startActionMode(mActionModeCallback);
view.setSelected(true);
return true;
}
});
}
}
但是,使用该代码会禁用正常点击,因此我在每个视图中添加了OnClickListener
:
convertView.setOnClickListener(new View.OnClickListener() {
public void onClick(View view) {
tempView.setBackgroundColor(getResources().getColor(R.color.blue));
final Intent details = new Intent(this, Details.class);
startActivity(details);
}
});
这或多或少有效,但看起来很黑,而且背景颜色变化不如正常颜色那么“平滑”。我还有另一个ListView
我正在使用MultiChoiceModeListener
并将ChoiceMode
设置为CHOICE_MODE_MULTIPLE_MODAL
,因此用户可以选择多行,并且正常的行点击工作细