由于setBackgroundResource,ListView项目无法单击

时间:2013-12-10 19:27:08

标签: android android-listview

我有一个由自定义适配器填充的ListView。但是,如果我在适配器中设置setBackgroundResource,则ListView项目不可单击。有我的代码:

public View getView(int position, View convertView, ViewGroup parent) {
    View view = convertView;
    if (view == null) {
        view = lInflater.inflate(R.layout.film_list, parent, false);
    }

    FilmData p = ((FilmData) getItem(position));
    view.setBackgroundResource(R.drawable.gradient);

    ((TextView) view.findViewById(R.id.textTime)).setText(p.time);

    return view;
}

是什么原因?

感谢。

3 个答案:

答案 0 :(得分:0)

首先设置后台资源不会导致它。你也可以发布适配器和xml文件的完整代码。

答案 1 :(得分:0)

更好地更改xml文件中布局的背景

例:relativelayout.setbackgroundResource();

答案 2 :(得分:0)

调用了onListItemClick(),但是您失去了点击“突出显示”,因为您已将背景设置为一个渐变。为避免这种情况,您需要创建statelisthttp://developer.android.com/guide/topics/resources/drawable-resource.html#StateList)来为按钮的每个状态定义背景。例如see this question。您可以将此xml保存在drawable文件夹中,然后让按钮背景引用它:

android:background="@drawable/my_button_selector"