
listsetSelection(listgetCount());
list是ListView对象,这个是我刚试过的,可以,也是今天才用的,这行代码要注意用到listsetAdapter()或者adapternotifyDataSetChanged();之后,就是说,必须listView设置了适配器或者适配器数据源改变之后设置
啥问题?
看上去像是要实现listview右键菜单
了解了一下,你如果只是在listview的contextMenuStrip属性中设置好了contextMenuStrip1,那么只要是在listview范围内,点就会出现菜单,你是想必须要点到正主上才出菜单
all right
ControlMousePosition这个用来获取鼠标位置
但是不用通过判断坐标这么麻烦吧
应该可以获取当前点击的listviewitem的index
如果是-1,那么就是没选中了,那就不d出菜单
如果选中了,再根据选中的indexd出相应的菜单
顺便把获取listviewitem坐标的方法告诉你
listView1GetItemAt(X,Y)
通过X,Y坐标定位,这里X,Y可以用
ControlMousePosition获取的坐标判断
MSDN是好东西,多看多搜
呃,没仔细研究,那就用你的第二种办法,满足条件再把contextmenustrip加上去
首先写个ListView 的数据适配器,抽离出来,写一个对象,用来设置listView 每条Item 的 的对象,可以采用ConvertView 设置setTag 将View 房子tag中,可以通过ListvIEW getChildAt()getTag 取得你想要的对象,设置参数,还是铁代码吧!
getView:
ItemObj viewHolder = null;
if(convertView == null){
viewHolder = new ItemObj();
convertView = mLayoutInflateinflate(Rlayoutsimple_item, null);
viewHoldermSimpleCardName = (TextView) convertViewfindViewById(Ridsimple_name);
viewHoldermIsReTake = (TextView) convertViewfindViewById(Ridsimple_num);
viewHoldermContentNext = (TextView)convertViewfindViewById(Ridstatus);
viewHoldermIsNext = (TextView) convertViewfindViewById(Ridicon_next);
convertViewsetTag(viewHolder);
}else{
viewHolder = (ItemObj) convertViewgetTag();
}
PhotoList aPotoLists = (PhotoList) getItem(position);
if(aPotoLists!= null){
viewHoldermSimpleCardNamesetText(aPotoListsphotoName);
if(KeyInMapITFTAKESIMPLE_PIC_TEP!= null){
viewHoldermIsReTakesetText("("+0+")");
if(KeyInMapITFTAKESIMPLE_PIC_TEPequals(aPotoListsphotoName)){
ArrayList<PhotoList> aLists= (ArrayList<PhotoList>) GlobalParameterget(KeyInMapITFTAKESIMPLE_PIC_TEP);
viewHoldermIsReTakesetText("("+aListssize()+")");
}
}
if(aPotoListsstatusequals("0")){
viewHoldermContentNextsetText("未审核");
viewHoldermIsNextsetBackgroundDrawable(mContextgetResources()getDrawable(Rdrawabletask_list_arrows));
}else{
viewHoldermContentNextsetText("已审核");
viewHoldermIsNextsetText("");
convertViewsetOnClickListener(null);
}
}
obj 对象:
public class ItemObj extends Object{
public TextView mSimpleCardName;// 单证的名称
public TextView mIsReTake;// 0 是 单证拍照 1是重拍照片
public TextView mContentNext;// 未提交 未审核等
public TextView mIsNext;// 箭头
public TextView getmSimpleCardName() {
return mSimpleCardName;
}
public void setmSimpleCardName(TextView mSimpleCardName) {
thismSimpleCardName = mSimpleCardName;
}
public TextView getmIsReTake() {
return mIsReTake;
}
public void setmIsReTake(TextView mIsReTake) {
thismIsReTake = mIsReTake;
}
public TextView getmContentNext() {
return mContentNext;
}
public void setmContentNext(TextView mContentNext) {
thismContentNext = mContentNext;
}
public TextView getmIsNext() {
return mIsNext;
}
public void setmIsNext(TextView mIsNext) {
thismIsNext = mIsNext;
}
其实这主要是用了ListView的一个方法,通过坐标就可以确定当前是哪一个listView,别的我就不多说了直接看看代码吧,
lv_flidesetOnTouchListener(new OnTouchListener() {
float oldX = 0;
float oldY = 0;
public boolean onTouch(View v, MotionEvent event) {
// TODO Auto-generated method stub
switch (eventgetAction()) {
case MotionEventACTION_DOWN:
//保存按下时的X,Y坐标
oldX = eventgetX();
oldY = eventgetY();
break;
case MotionEventACTION_UP:
//获取按起时的X,Y坐标
float newX = eventgetX();
float newY = eventgetY();
//通过ListView中的pointToPosition方法获取点击ListView中的位置position
final int oldPosition = ((ListView)v)pointToPosition((int)oldX, (int)oldY);
int newPosition = ((ListView)v)pointToPosition((int)newX, (int)newY);
if( newX - oldX > 20 && oldPosition == newPosition) {
//获取ListView中点击是的View
view = ((ListView)v)getChildAt(oldPosition);
for(int n=0;n<datasize();n++)
{
if(n==oldPosition)
{
dataMapput(n, true);
}
else
{
dataMapput(n, false);
}
}
index = oldPosition;
adapternotifyDataSetChanged();
/holderdeletesetVisibility(ViewVISIBLE);
holderdeletesetTextColor(ColorRED);
//删除ListView指定项
holderdeletesetOnClickListener(new OnClickListener(){
@Override
public void onClick(View arg0) {
removeItemView(view,oldPosition);
}
});/
// removeItemView(view,oldPosition);
}
break;
default:
break;
}
return false;
}
});
以上就是关于android中如何获取listview中聚焦的item的索引值全部的内容,包括:android中如何获取listview中聚焦的item的索引值、C#中listviewd出菜单的两种方法问题、android中怎么获取listview的item的信息等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)