首页系统selecteditem(什么是selecteditem)

selecteditem(什么是selecteditem)

编程之家2024-06-03127次浏览

一、...方法与onOptionsItemSelected()方法有什么区别

在点击选项菜单(OptionsMenu:点击menu弹出的菜单)的菜单项时即调用了onMenuItemSelected也调用了onOptionsItemSelected,于是疑惑他们有什么不一样。然后再看上下文菜单(ContextMenu:长按控件时弹出。例如在长按EditTextView时弹出输入的法选择菜单),点击上下文菜单的菜单项时即调用了onMenuItemSelected也调用了onContextItemSelected,于是问题就明朗了。在父Activity的onMenuItemSelected方法中判断如果是选项菜单就走onMenuItemSelected,如果是上下文菜单就走onContextItemSelected。

selecteditem(什么是selecteditem)

除此还有

onPrepareOptionsMenu:在显示选项菜单前调用

onOptionsMenuClosed:在选项菜单关闭时被调用

onContextMenuClosed:在上下文菜单关闭时调用

二、datalist控件的Items属性是什么意思

Items介绍和作用

Items是DataGridItem的集合,可以遍历当前DataGrid中显示数据的DataGridItem。

selecteditem(什么是selecteditem)

5.1、DataGridItem

每一个DataGridItem就是DataGrid中显示的一行,其中包括:

Header DataGrid控件的标题部分

Item DataGrid控件中的项

AlternatingItem DataGrid控件中的交替项

SelectedItem DataGrid控件中的选定项(由SelectedIndex设置,通过SelectedItem属性或者Items[SelectedIndex]来读取)

selecteditem(什么是selecteditem)

EditItem DataGrid控件中处于编辑状态的项(由EditItemIndex设置,通过Items[EditItemIndex]来读取)

Separator DataGrid控件中项之间的分隔符

Footer DataGrid控件的脚注部分

Pager DataGrid控件的页选择节

注意,DataGrid的Items属性中不会包含Header、Footer、Pager这三类DataGridItem的。

5.1.1、DataGridItem的属性

ItemIndex——得到行在Items中的索引

ItemType——返回行的类型,也就是上面列出的Header、Item、...、Pager

Cells——返回行包含的所有TableCell(不管是显示声明的,还是自动生成的,不管是可以看见的,还是隐藏掉的),通过TableCell,可以读取Cell中显示的文本、包含的控件

严重注意:只有BoundColumn列和自动生成列,才可以通过TableCell.Text属性读取显示的文本。HyperLinkColumn、ButtonColumn、EditCommandColumn都需要将目标控件转换成相应的控件。

比如:

假设DataGrid的第一列声明如下

<asp:HyperLinkColumn DataTextField="au_id" HeaderText="au_id" DataNavigateUrlField="au_id" DataNavigateUrlFormatString="Edit.aspx?id={0}"></asp:HyperLinkColumn>

读取的时候可以用:

//Items[0]表示第一行,Cells[0]表示第一列,Controls[0]表示Cell中的第一个控件(也只有这个控件可以用)

HyperLink link=(HyperLink)DataGrid1.Items[0].Cells[0].Controls[0]);

Response.Write(link.Text);

至于模板列(TemplateColumn),当然也可以通过DataGrid1.Items[i].Cells[j].Controls[n]来获取,然后转换成原来的控件类型再操作,但是还有个更好的办法,就是用FindControl来查找控件。

FindControl是System.Web.UI.Control的方法,可以根据子控件ID来查找子控件

比如:

假设DataGrid的某一列声明如下

<asp:TemplateColumn>

<ItemTemplate>

<asp:TextBox Runat="server" ID="txtID" Text='<%# DataBinder.Eval(Container.DataItem,"au_id")%>'>

</asp:TextBox>

</ItemTemplate>

</asp:TemplateColumn>

读取方法:

TextBox txt=(TextBox)DataGrid1.Items[1].FindControl("txtID");

Response.Write(txt.Text);

注意:DataList中是没有Cell的

三、android 的 getSelectedItemPosition() 方法的问题

这是一个默认值,不是手动去选择某一个item的position值,这个是在控件初始化完成后,这个值就已经是定死的,不管选择哪个这个值都是既定的值。

这个是会在选择其中一个item的时候会改变,如果在点击一个item之后,再Log.e("!",dialog.getListView().getSelectedItemPosition()+"");

应该可以看到是现在想要的值一定是在触发这个item被选中的事件中。

dialog.getListView().getSelectedItemPosition()

getListView是返回了listview

然后调用listview的getSelectedItemPosition,这个不是点单选以后返回选中,而是指的那一个条目的时候选中的。

可以去看看api文档说明关于listview。

pdf文件太大如何变小 PDF文件超出上传大小ip电话安装(ip电话怎么安装)