Android Listview项目选择
在Listview的适配器类中,我为每个列表项添加了setOnClickListener事件。但每当我们点击列表项时,这些项都不会突出显示。 如果删除setOnClickListener事件,我将能够轻松查看列表项选择。。 请告诉我,如何解决这个问题 在listAdapter的getview中,如果添加此部分,listview项选择颜色将不会出现Android Listview项目选择,android,Android,在Listview的适配器类中,我为每个列表项添加了setOnClickListener事件。但每当我们点击列表项时,这些项都不会突出显示。 如果删除setOnClickListener事件,我将能够轻松查看列表项选择。。 请告诉我,如何解决这个问题 在listAdapter的getview中,如果添加此部分,listview项选择颜色将不会出现 holder.ContactNumber.setText(fitems.get(position).getContactName());
holder.ContactNumber.setText(fitems.get(position).getContactName());
convertView.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
// TODO Auto-generated method stub
setSelectedItem(i);
Intent intent =
new Intent(context, preview_screen.class);
context.startActivity(intent);
}
});
您必须使用xml文件为行设置背景 可绘制->bg_row.xml
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@color/white" android:state_pressed="false" android:state_selected="false"/>
<item android:drawable="@color/blue" android:state_pressed="true" android:state_selected="false"/>
<item android:drawable="@color/blue" android:state_pressed="true" android:state_selected="true"/>
</selector>
在re/drawable文件夹中为列表视图项目行\u selector.xml创建一个选择器添加此选择器作为您的listview\u item.xml背景 这是android使用的默认选择器,您可以自定义选择器:
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/button_pressed_yellow"
android:state_pressed="true" />
<item android:drawable="@drawable/button_focused_orange"
android:state_focused="true" />
<item android:drawable="@drawable/button_normal_green" />
</selector>
使用MClickListener()回调处理listview项上的单击事件
listView.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
Toast.makeText(getApplicationContext(),
""+position, Toast.LENGTH_SHORT).show();
}
});
listView.setOnItemClickListener(新的OnItemClickListener(){
public void onItemClick(AdapterView父级、视图、,
内部位置,长id){
Toast.makeText(getApplicationContext(),
“”+位置,土司。长度(短)。显示();
}
});
给convertView一个onClickListener不是ListView的工作方式。
不要设置此侦听器。相反,将onItemClickListener或onItemSelectListener(取决于您要执行的操作)设置到listview,并将代码放在其中。//listview项目单击Listener
// ListView Item Click Listener
listView.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
// ListView Clicked item index
int itemPosition = position;
// ListView Clicked item value
String itemValue = (String) listView.getItemAtPosition(position);
// Show Alert
Toast.makeText(getApplicationContext(),
"Position :"+itemPosition+" ListItem : " +itemValue , Toast.LENGTH_LONG)
.show();
}
});
setOnItemClickListener(新的OnItemClickListener(){
@凌驾
public void onItemClick(AdapterView父级、视图、,
内部位置,长id){
//ListView单击的项目索引
int itemPosition=位置;
//ListView单击的项目值
String itemValue=(String)listView.getItemAtPosition(position);
//显示警惕
Toast.makeText(getApplicationContext(),
位置:“+itemPosition+”列表项:“+itemValue,Toast.LENGTH\u LONG)
.show();
}
});
在列表视图监听器中,您使用的请在此处添加相关代码。@hawaii.five-0,我已经添加了代码片段谢谢您的回复。我的疑问是,如果我在adapter类中添加SetonClickListner事件,我可以选择项目,但默认的选择颜色不会出现。。为什么?谢谢你的回复。我的疑问是,如果我在adapter类中添加SetonClickListner事件,我可以选择项目,但默认的选择颜色不会出现。。为什么?@LLL如果要获得默认的选择器颜色,必须使用setOnItemClickListener!!谢谢,我没有得到你的评论。。。如果我添加setOnItemClickListener,我将无法获得默认选择器,以克服我应该做的事情?@ll您不必通过在持有者模式上注册OnClick Listener来处理项目的点击!!Android API提供了一个名为OnItemClickListener的回调来处理对listview项的单击这两个事件在Convertview obj中都不可用