Android 如何在ListView中设置rowView的动画是一个OnClickListener已应用于该视图的问题
我的应用程序中有一个非常复杂的listView,它可以根据每个rowView的某些标志启动不同的活动—有些rowView甚至无法单击 我选择在每个rowView上添加一个OnClickListener来启动活动,但是在我将该listener添加到rowView之后,当我单击它时,它不再具有动画效果,它应该会变得更暗,就像默认的android实现一样。 没有监听器的行视图仍然是动画,所以我想我错过了一些使其变暗的调用 有什么提示吗 编辑:因为我收到了一些代码请求,这里是我的customAdapter的getView的简化快照Android 如何在ListView中设置rowView的动画是一个OnClickListener已应用于该视图的问题,android,android-listview,android-animation,Android,Android Listview,Android Animation,我的应用程序中有一个非常复杂的listView,它可以根据每个rowView的某些标志启动不同的活动—有些rowView甚至无法单击 我选择在每个rowView上添加一个OnClickListener来启动活动,但是在我将该listener添加到rowView之后,当我单击它时,它不再具有动画效果,它应该会变得更暗,就像默认的android实现一样。 没有监听器的行视图仍然是动画,所以我想我错过了一些使其变暗的调用 有什么提示吗 编辑:因为我收到了一些代码请求,这里是我的customAdapte
public View getView(final int position, View view, ViewGroup parent) {
LayoutInflater inflater = context.getLayoutInflater();
View rowView = inflater.inflate(R.layout.customlistitem, null, true);
if (infoList.get(position).isSeparator()){
// Populate the view and don't add a listener
} else {
// Populate the view in some other way and add a listener
rowView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent(context, myActivity.class);
intent.putExtra("an_extra", new Object());
intent.putExtra("another_extra", new Object());
intent.putExtra("a_third_extra", new Object());
context.startActivity(intent);
}
});
}
return rowView;
}
如果对象具有ISSEPARTOR标志,则当我单击它时,它会变暗,否则它不会变暗。您不需要在每个行视图上添加侦听器。在ListView上设置它:
listView.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
请发布一些代码,我会避免这种解决方案,因为由于要检查多个标志,onItemClick将很难保存和读取。由于我已经基于该标志以不同的方式填充ListView,我希望在getView方法中添加侦听器,以保持其可读性和可调试性,但仍保持标准ListView的动画效果。如果您只需要查看按下的状态效果,请使用view.setSelectedtrue inside onClick。