我正在尝试设置listview行中视图的所有属性,这些属性将对点击做出反应(可以是简单的按下,长按或其他任何内容)。我尝试将父视图和子视图的.setFocusable,.setFocusableInTouchMode,.setLongClickable,.setClickable,.setPressed,.setSelected,.setHapticFeedbackEnabled属性设置为false,但它没有帮助。
我在列表视图的两个状态之间切换按钮。当我切换到第二状态时,我想禁用行上的所有点击。我用不同的自定义cursoradapter填充listview的每个状态。以下代码片段来自我的第二个状态的第二个cursoradapter:
@Override
public void bindView(View view, Context context, Cursor cursor) {
RelativeLayout parent = (RelativeLayout) view.findViewById(R.id.title_rows_relativelayout);
TextView lists_text = (TextView) view.findViewById(R.id.list_title_text);
lists_text.setText(cursor.getString(cursor.getColumnIndex(ListsDbAdapter.TITLE)));
lists_text.setBackgroundResource(R.drawable.background_for_rows);
parent.setBackgroundResource(R.drawable.background_for_rows);
view.setFocusable(false);
view.setFocusableInTouchMode(false);
view.setHapticFeedbackEnabled(false);
view.setLongClickable(false);
view.setClickable(false);
view.setPressed(false);
view.setSelected(false);
parent.setFocusable(false);
parent.setFocusableInTouchMode(false);
parent.setHapticFeedbackEnabled(false);
parent.setLongClickable(false);
parent.setClickable(false);
parent.setPressed(false);
parent.setSelected(false);
lists_text.setFocusable(false);
lists_text.setFocusableInTouchMode(false);
lists_text.setHapticFeedbackEnabled(false);
lists_text.setLongClickable(false);
lists_text.setClickable(false);
lists_text.setPressed(false);
lists_text.setSelected(false);
}
提前谢谢。
答案 0 :(得分:7)
我遇到了类似的问题。
setEnabled(false)
..为我做了这份工作。
答案 1 :(得分:1)
如果我正确理解你,你不应该需要两个适配器。您可以只使用一个并将onClickListener添加到视图中,以禁用所有内容:
view.setOnClickListener(new View.onClickListener(){
public void onClick(View view){
//do all your code for disabling stuff in here
}
});
也许这样做而不必在适配器之间切换会对你有帮助。