我有一个使用CursorAdapter填充的ListView.我还希望在ListView中有一些分隔符.我用ArrayAdapter完成了这个,但是我不知道如何使用CursorAdapter完成这个.这样做有什么策略吗?还是我运气不好?
我创建了一个ArrayList<HashMap<String, String>>
集合来保存我的数据ListView
.我正在使用SimpleAdapter
.
当列表项的ID为%10 == 0时,是否可以更改列表项的背景?
这是代码(生成布局的方法):
private void fillData() {
Cursor c = this.mDbManager.getNgOrderDetailByOrderNumber(this.mNumber);
ArrayList<HashMap<String, String>> items = new ArrayList<HashMap<String, String>>();
if (!c.isAfterLast()) {
do {
// ... filling HashMap and putting it to ArrayList
} while (c.moveToNext());
}
SimpleAdapter adapter = new SimpleAdapter(this, items, R.layout.list_item,
new String[] { "product", "ordered", "price", "discount" },
new int[] { R.id.ProductTextView, R.id.OrderedTextView,
R.id.PriceTextView, R.id.DiscountTextView });
ListView l = (ListView) findViewById(android.R.id.list);
l.setAdapter(adapter);
}
Run Code Online (Sandbox Code Playgroud) 创建了一个QtGui.QListWidget列表小部件:
myListWidget = QtGui.QListWidget()
Run Code Online (Sandbox Code Playgroud)
使用QListWidgetItem列表项填充此ListWidget:
for word in ['cat', 'dog', 'bird']:
list_item = QtGui.QListWidgetItem(word, myListWidget)
Run Code Online (Sandbox Code Playgroud)
现在连接list_item左键的函数:
def print_info():
print myListWidget.currentItem().text()
myListWidget.currentItemChanged.connect(print_info)
Run Code Online (Sandbox Code Playgroud)
从我的代码中可以看出,左键单击的所有内容都是list_item的标签名称.但除了标签名称,我想获得list_item的索引号(ListWidget中显示的订单号).我想尽可能多地获取左键单击list_item的信息.我看了dir(my_list_item).但是我没有任何有用的东西(除了已经使用的my_list_item.text()方法,它返回一个list_item的标签名称).提前致谢!
我有一个自定义列表视图,由ImageView和TextView组成.单击工作正常,但它不会像正常的ListView那样突出显示项目.我该如何添加亮点?我尝试通过在点击时设置背景颜色然后添加计时器来删除背景颜色来进行装配.这有效,但我想要一个更好的解决方案.有任何想法吗?
我正在做一些关于c#的项目.我需要i
从ListView
窗口获取项目,通过做这样的事情我得到它的句柄
IntPtr par_hWnd = API.FindWindow(null, "Form1");
IntPtr child1 = API.FindWindowEx(par_hWnd, (IntPtr)0, null, null);
Run Code Online (Sandbox Code Playgroud)
API
是我的静态类,有很多来自"user32.dll"的dllimports我能够得到这个ListView中的项目数:
IntPtr count = API.SendMessage(child1, API.LVM_GETITEMCOUNT, 0, 0);
Run Code Online (Sandbox Code Playgroud)
现在我需要获取item的文本,但结果必须以某种方式放在LVITEM
Structure中,我不知道如何SendMessage
正确调用,以及如何LVITEM
在c#中实现.找不到c#的例子.有帮助吗?
我在Expression Blend中遇到了ListView设计的问题,这比我想象的要难.
我想用XAML绘制一个屏幕.这不会在应用程序内部运行,只是一个静态设计研究,应该只在Expression Blend的设计窗口中进行查看.
到目前为止我有这个:
<ListView x:Name="examList" SelectionMode="Single">
<ListView.View>
<GridView>
<GridViewColumn Header="Date" Width="Auto"/>
<GridViewColumn Header="Setup" Width="Auto"/>
<GridViewColumn Header="Protocol" Width="Auto" />
<GridViewColumn Header="Channels" Width="Auto"/>
<GridViewColumn Header="Duration" Width="Auto"/>
</GridView>
</ListView.View>
<ListViewItem>
<TextBlock Text="stuff" /> <!-- what should I put here??? -->
</ListViewItem>
</ListView>
Run Code Online (Sandbox Code Playgroud)
问题是:我不知道如何为每个字段(GridView中的每一列)创建一个字符串或数字值的ListViewItems.
我会感谢任何帮助,无论是否有代码隐藏,但我的工作流程的一个必要条件是它在Expression Blend中的设计时呈现而无需运行应用程序,并且最好是数据不是从另一个文件绑定的,但手工输入直接进入XAML(我不介意,实际上我想要它).
我找到了这个答案,但我认为它不能满足我的需要.
谢谢阅读!
我正在尝试在选择时更改ListViewItem的颜色.它的默认颜色是Windows 8紫色.
在我的App.xaml中,我可以设置以下行,这将更改整个应用程序的ListViews的选定颜色.
<SolidColorBrush x:Key="ListViewItemSelectedBackgroundThemeBrush" Color="Orange" />
Run Code Online (Sandbox Code Playgroud)
但是,我想逐页进行此操作,因此我想在页面资源中设置它.
但是,当我尝试这个时,它被忽略了,从未使用过.它似乎只适用于app.xaml.
有谁知道我怎么能绕过这个?
这适用于使用XAML和C#编写的Windows 8商店应用程序.
谢谢
c# listviewitem windows-runtime winrt-xaml windows-store-apps
快速搜索后,我找不到这个看似简单的事情的答案.
如何在Asp.Net ListView中手动选择项?
我有一个SelectedItemTemplate,但我不想使用asp:button或asp:LinkButton来选择一个项目.我希望它可以通过URL完成.例如,像QueryString一样.
我想象的方式是在ItemDataBound上,检查条件,然后将其设置为selected,如果为true,但我该怎么做?
例如:
protected void lv_ItemDataBound(object sender, ListViewItemEventArgs e) {
using (ListViewDataItem dataItem = (ListViewDataItem)e.Item) {
if (dataItem != null) {
if( /* item select condition */ ) {
// What do I do here to Set this Item to be Selected?
// edit: Here's the solution I'm using :
((ListView)sender).SelectedIndex = dataItem.DisplayIndex;
// Note, I get here and it gets set
// but the SelectedItemTemplate isn't applied!!!
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
我确定这是一行或两行代码.
编辑:我已经更新了代码以反映解决方案,似乎我可以选择ListView的SelectedItemIndex,但是,它实际上并没有呈现SelectedItemTemplate.我不知道我是否应该在ItemDataBound事件中执行此操作,如下所示.
我知道它已经被问到了,但我还没有找到答案(对Android来说很新,所以很抱歉无知)
我的应用程序的启动Activity有一个EditText(称为searchbox),一个ListView(名称)和一个Spinner(类型)
我使用EditText作为搜索框,我必须通过自定义编辑传递字符串,以使搜索更灵活.之后,我将其与我在'指定'中找到的最接近的近似值相匹配
designations.setSelection(j);
Run Code Online (Sandbox Code Playgroud)
正如所料,这将所需项目设置为指定的顶部.但我找不到通过代码突出显示它的方法.
现在,我知道如果设备处于触摸模式,则不会突出显示所选项目.所以我的搜索框的onTextChanged事件的最后4行是:
designations.setFocusable(true);
designations.setFocusableInTouchMode(true);
if (match==true) designations.setSelection(j);
if (st.length()==0) designations.setSelection(0);
Run Code Online (Sandbox Code Playgroud)
无济于事.
现在,我在searchbox的afterTextChanged(Editable s)上没有任何代码;
所以有人能给我一个线索吗?
问〜呃
我使用Xamarin.Forms来定义一个ListView
.这ListView
定义了ContextAction
内部的一些内容ViewCell
.然后,根据平台,将这些上下文动作呈现给用户.在Android中,这是通过长按特定项目来触发的.可悲的是,这个项目不会(正确地)突出显示,正如在这个截图中可以看到的那样(我长期压下第三项,遗憾的是我还没有嵌入图像).
有没有办法在上下文菜单打开时修改Cell?特别是要求Android的解决方案,但也欢迎一般的答案.目标最终是改善突出显示,例如通过更改单元格的背景颜色.当ContextAction
按下一个单元时,修改单元格不是我想要的.
我浏览了Xamarin.Forms的源代码,并考虑以某种方式继承自例如ViewCell类,但找不到长按项目时会触发/调用的事件或命令.我已经设置了一个简单的存储库来说明行为:GitHub存储库
最重要的代码片段
XAML中的ListView定义
<?xml version="1.0" encoding="utf-8"?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms" xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" xmlns:local="clr-namespace:ListViewContextMenu" x:Class="ListViewContextMenu.ListViewContextMenuPage">
<ListView x:Name="MyListView">
<ListView.ItemTemplate>
<DataTemplate>
<ViewCell>
<ViewCell.ContextActions>
<MenuItem Text="Action" Command="{Binding OnAction}" CommandParameter="{Binding .}"/>
</ViewCell.ContextActions>
<Label Text="{Binding Name}" />
</ViewCell>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
</ContentPage>
Run Code Online (Sandbox Code Playgroud)MyItem定义(MVVM)
using System.Diagnostics;
using Xamarin.Forms;
namespace ListViewContextMenu
{
public class MyItem
{
public string Name { get; set; }
public Command OnAction { get; set; }
public MyItem()
{
OnAction = …
Run Code Online (Sandbox Code Playgroud)