Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/201.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何在ListView中设置rowView的动画是一个OnClickListener已应用于该视图的问题_Android_Android Listview_Android Animation - Fatal编程技术网

Android 如何在ListView中设置rowView的动画是一个OnClickListener已应用于该视图的问题

Android 如何在ListView中设置rowView的动画是一个OnClickListener已应用于该视图的问题,android,android-listview,android-animation,Android,Android Listview,Android Animation,我的应用程序中有一个非常复杂的listView,它可以根据每个rowView的某些标志启动不同的活动—有些rowView甚至无法单击 我选择在每个rowView上添加一个OnClickListener来启动活动,但是在我将该listener添加到rowView之后,当我单击它时,它不再具有动画效果,它应该会变得更暗,就像默认的android实现一样。 没有监听器的行视图仍然是动画,所以我想我错过了一些使其变暗的调用 有什么提示吗 编辑:因为我收到了一些代码请求,这里是我的customAdapte

我的应用程序中有一个非常复杂的listView,它可以根据每个rowView的某些标志启动不同的活动—有些rowView甚至无法单击

我选择在每个rowView上添加一个OnClickListener来启动活动,但是在我将该listener添加到rowView之后,当我单击它时,它不再具有动画效果,它应该会变得更暗,就像默认的android实现一样。 没有监听器的行视图仍然是动画,所以我想我错过了一些使其变暗的调用

有什么提示吗

编辑:因为我收到了一些代码请求,这里是我的customAdapter的getView的简化快照

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。