美好的一天。我有一个显示ListView
的Android应用程序。单击任何行后,我希望所有其他行都显示为灰色。我正在使用自定义ListView
和我自己的BaseAdapter
,我知道我可以在getView
函数上创建一个onclick函数。但是,这样做会使我基本活动中的onItemClick
函数无效,这就是为什么我希望尽可能在我的基本活动中执行此操作。
以下是我制作onItemClick
函数的方法:
resultListView.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapterView, View view,
int position, long id) {
// TODO Auto-generated method stub
resultListView.smoothScrollToPositionFromTop(position, 0);
resultListView.setClickable(false);
resultListView.setScrollContainer(false);
resultListView.setEnabled(false);
};
});
}
除了所选项目之外,有没有办法让所有其他项目变灰?即使改变alpha /降低它也会有所帮助。我想给用户一个印象,即其他列表项不可点击。我现在很难搞清楚它。非常感谢任何帮助,谢谢。
修改
我可以通过以下方式调整alpha:
resultListView.setAlpha((float) 0.5);
但是,它会影响整行,我无法调整所选行的alpha值。
答案 0 :(得分:0)
创建用于保存变量的类。例如,将此类传递给适配器而不是字符串。在类中创建一个布尔变量isSelected。在onItemClick()中设置isSelected,并根据你的isSelected变量启用/禁用getView()中的视图。