1. 选择单条,颜色变化
<RelativeLayout
android:id="@+id/contact_list_view"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_above="@id/Delete_layout"
android:background="@android:color/white"
android:layout_below="@id/index_top_layout" >
<ListView
android:id="@+id/list"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:listSelector="@drawable/listview_selector"
android:visibility="visible" />
</RelativeLayout>
listview_selector内容为:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@color/white" android:state_enabled="false"></item>
<item android:drawable="@color/green" android:state_pressed="true"></item>
<item android:drawable="@color/white"></item>
</selector>
2. list嵌入 checkbox 单击事件失效问题
item的配置xml文件
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:paddingBottom="6.0dip"
android:paddingTop="6.0dip"
android:descendantFocusability="blocksDescendants">
<CheckBox
android:id="@+id/item_listview_checkbox"
style="@style/ContactCheckBox"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_centerInParent="true"
android:layout_centerVertical="true"
android:layout_marginRight="20dip"
android:focusable="false" />
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_toLeftOf="@id/item_listview_checkbox" >
<TextView
android:id="@+id/contact_name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="10.0dip"
android:layout_toRightOf="@id/icon"
android:ellipsize="end"
android:gravity="left|center"
android:includeFontPadding="false"
android:maxWidth="150sp"
android:padding="0.0dip"
android:singleLine="true"
android:text="contact_namecontact_namecontact_namecontact_name"
android:textColor="@android:color/black"
android:textSize="16.0sp" />
<TextView
android:id="@+id/contact_count"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="5.0dip"
android:layout_marginRight="10.0dip"
android:layout_toRightOf="@id/contact_name"
android:ellipsize="end"
android:gravity="left|center"
android:includeFontPadding="false"
android:padding="0.0dip"
android:singleLine="true"
android:text="(1/4000000000000000)"
android:textColor="@android:color/black"
android:textSize="16.0sp" />
<TextView
android:id="@+id/lastsmsdetail"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/contact_name"
android:layout_marginLeft="10.0dip"
android:layout_marginTop="15dip"
android:ellipsize="end"
android:gravity="left|center"
android:includeFontPadding="false"
android:maxWidth="150sp"
android:padding="0.0dip"
android:singleLine="true"
android:text="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
android:textColor="@color/huise"
android:textSize="16.0sp" />
</RelativeLayout>
</RelativeLayout>
3 长按触发短按事件
需要
setOnItemLongClickListener 函数返回true
list.setOnItemClickListener(new OnItemClickListener(){
@Override
public void onItemClick(AdapterView<?> arg0, View view, int arg2,
long arg3) {
// TODO Auto-generated method stub
int Index = arg2;
ContactSMSListInfoBean bean = beanList.get(Index);
Intent intent = new Intent();
intent.setClass(SMSListActivity.this, ASMSTalkViewActivity.class);
intent.putExtra("ContackSMS", bean);
startActivityForResult(intent, Const.READ_ASMSTALK_INTENT);
}
});
list.setOnItemLongClickListener(new OnItemLongClickListener(){
@Override
public boolean onItemLongClick(AdapterView parent, View view, int position,
long id) {
// TODO Auto-generated method stub
Toast.makeText(SMSListActivity.this, "position:"+ position + " id:"+id,
Toast.LENGTH_LONG).show();
Intent intent = new Intent();
intent.putExtra("SMSTalkList", beanList);
intent.setClass(SMSListActivity.this, SMSTalkDeleteListActivity.class);
startActivityForResult(intent, Const.DELETE_SMSTALK_INTENT);
return true;
}
});