Listview突出显示onclick而不是item

时间:2017-01-16 10:04:24

标签: java android listview onclicklistener

我正在尝试突出显示列表视图中从字符串中拆分的单个项目,但是整个Listview会突出显示而不是项目。

请帮忙。

        protected void onPostExecute(String result) {

        Local.Set(getApplicationContext(), "TicketHolders", result);            
        String[] RowData = result.toString().split("\\;");
        List<String> TicketholdersArray = new ArrayList<>();

        for(int x=0;x<RowData.length;x++){
            TicketholdersArray.add(RowData[x].toString());
        }

        // below creates and styles listview
        ListView listView1 = (ListView)       findViewById(R.id.your_list_view_id);
        ArrayAdapter<String> adapter = new ArrayAdapter<String>(GuestlistActivity.this,R.layout.liststyle, TicketholdersArray);
        listView1.setAdapter(adapter);

        listView1.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> ArrayAdapter, View view, int position, long id) {
                view.setSelected(true);
            }
        });

3 个答案:

答案 0 :(得分:0)

要处理listview项目行中的特定视图,你必须在get view()方法上使用适配器获取视图并设置listner颜色等......无论你需要什么

答案 1 :(得分:0)

试试这个:

要在按下列表视图项时保持其颜色,请在列表视图布局中包含以下行:

android:background="@drawable/bg_key"

然后在drawable文件夹中定义bg_key.xml,如下所示:

<?xml version="1.0" encoding="utf-8" ?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item 
        android:state_selected="true"
        android:drawable="@color/pressed_color"/>
    <item
        android:drawable="@color/default_color" />
</selector>

最后,将它包含在ListView onClickListener中:

listView.setOnItemClickListener(new OnItemClickListener() {

    @Override
    public void onItemClick(AdapterView<?> parent, View view, int position,long arg3) {
        view.setSelected(true);
        ... //Anything
    }
});

这样,任何时候都只会选择一个项目进行颜色选择。您可以使用以下内容在res / values / colors.xml中定义颜色值:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <color name="pressed_color">#4d90fe</color>
    <color name="default_color">#ffffff</color>
</resources>

希望这可以帮助你

答案 2 :(得分:0)

listview有一个显示所选项目的属性

将此代码添加到xml

中的listView item_layout
 android:background="@drawable/list_selector"

这是你的选择器代码。创建一个可绘制的选择器文件

 <!-- <item android:drawable="@color/android:transparent"  android:state_selected="true" /> -->
<item android:drawable="@color/list_bg" android:state_selected="true"/>
<item android:drawable="@color/list_bg" android:state_activated="true"/>
<item android:drawable="@color/transparent"/>