2016-08-13 80 views
2

我想在长按下我的ListView时突出显示选中的行。现在我能做到这一点时,该行刚刚点击的照片:改变在ListView中长按选择的行的颜色Android

selected row.jpg

我怎样才能做到这一点与长按? 我setOnItemLongClickListener功能至今:

user_data.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() { 
     @Override 
     public boolean onItemLongClick(AdapterView<?> adapterView, View view, int i, long l) { 
      selected_note = adapterView.getItemAtPosition(i).toString(); 
      user_data.setItemChecked(i,true); 
      return true; 
     } 
}); 
+0

试'view.setBackgroundColor((#00FF00)' – MikeT

+0

迈克我感谢您的快速回答,但这并不起作用。你得到我想要做的对吗? –

+0

并非完全取决于您想要更改的内容,这可能取决于布局所包含的内容。最好为布局包含xml。我从ListView中取得了这个片段,我在其中设置了交替的背景颜色(在adpater的getView()方法中)。 – MikeT

回答

1

编辑:那么这可能有助于

在您的列表视图布局

android:background="@drawable/key" 

创建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); 
     //your logic what you want to do 
    } 
}); 

定义的diff颜色在res /值/ colors.xml

而在colors.xml定义颜色为资源 “pressed_color” 或relesed颜色

+0

Quamran谢谢,但你能告诉我怎么写我的java类使用drawable.xml –

+0

@AhmetUrun我已经更新了我的答案 –

+1

这是很好的解释它的工作原理。非常感谢Qamran。 –