- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有以下代码:
protected override void OnCreate (Bundle bundle)
{
progress = ProgressDialog.Show(this, "", "Loading...");
progress.SetProgressStyle(ProgressDialogStyle.Spinner);
base.OnCreate (bundle);
//Set the Activity's view to our list layout
SetContentView(Resource.Layout.LawsAndRegsList);
new Thread(new ThreadStart(() => {
//Create our adapter
listAdapter = new LawsAndRegsListAdapter(this);
this.RunOnUiThread ( () => {
//Find the listview reference
listView = FindViewById<ListView>(Resource.Id.listView);
//Hook up our adapter to our ListView
listView.Adapter = listAdapter;
//Wire up the click event
//listView.ItemClick += new EventHandler<ListView.ItemClickEventArgs>(listView_ItemClick);
listView.ItemClick += listView_ItemClick;
listAdapter.NotifyDataSetChanged();
progress.Dismiss();
});
})).Start();
}
void listView_ItemClick(object sender, AdapterView.ItemClickEventArgs e)
{
//Get our item from the list adapter
var item = this.listAdapter.GetItemAtPosition(e.Position);
//Make a toast with the item name just to show it was clicked
Toast.MakeText(this, item.Name + " Clicked!", ToastLength.Short).Show();
}
谁能告诉我为什么 ItemClick 不会被调用?
看起来像我读过的和看到的例子,那么我做错了什么?感谢您的帮助。
更新:
这是我的两种布局:
法律和法规列表:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/widget28"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical">
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="@drawable/topLevelMenuBackground"
android:orientation="horizontal">
<Button
android:id="@+id/btnAddExpense"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:text="@string/ButtonHome"
android:layout_centerVertical="true" />
<TextView
android:id="@+id/lblExpenseCancel"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_marginLeft="10dp"
android:layout_marginRight="15dp"
android:text="@string/LawsAndRegs"
android:textColor="#ffffffff"
android:textSize="20sp"
android:layout_centerVertical="true" />
</RelativeLayout>
<ListView
android:id="@+id/listView"
android:layout_width="fill_parent"
android:layout_height="wrap_content" />
</LinearLayout>
LawsAndRegsListItem:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/widget28"
android:layout_width="fill_parent"
android:background="@drawable/topLevelMenuCellBackground"
android:layout_height="40px">
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<ImageView
android:id="@+id/imageItem"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:layout_centerVertical="true"
android:layout_gravity="center_vertical" />
<TextView
android:id="@+id/textTop"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:textColor="#111479"
android:text="hello"
android:layout_toRightOf="@+id/imageItem"
android:textStyle="bold"
android:layout_marginLeft="10dp" />
<ImageButton
android:src="@drawable/OrangeAccessoryButton"
android:layout_width="wrap_content"
android:layout_height="25dp"
android:layout_alignParentRight="true"
android:layout_marginLeft="10dp"
android:layout_marginRight="15dp"
android:layout_centerVertical="true"
android:id="@+id/imageButton1"
android:background="@android:color/transparent" />
</RelativeLayout>
</LinearLayout>
更新#2:
添加了我的 LIstAdapter 代码:
公共(public)类 LawsAndRegsListAdapter : BaseAdapter{ Activity 背景;
public List<LawsAndRegs> items;
public LawsAndRegsListAdapter (Activity context) //We need a context to inflate our row view from
{
this.context = context;
MY_SEB_SERVICE_ContentWS.ContentWS contentWS = new MY_WEB_SERVICE_ContentWS.ContentWS ();
string sMenu = contentWS.GetMenuXML (146, 1, "", 0, 1033);
XmlRootAttribute r = new XmlRootAttribute ("Item");
var ser = new XmlSerializer (typeof(Item), r);
StringReader stringReader;
stringReader = new StringReader (sMenu);
Item obj = (Item)ser.Deserialize (stringReader);
ItemMenuItem[] m = obj.Menu.Item;
ItemMenuItem larMenu = null;
foreach (ItemMenuItem mnu in m)
{
if (mnu.ItemID == 155)
{
if (this.items == null)
this.items = new List<LawsAndRegs> ();
larMenu = mnu;
break;
}
}
if (larMenu != null)
{
foreach (ItemMenuItemMenuItem imimi in larMenu.Menu.Item)
{
LawsAndRegs lar = new LawsAndRegs();
lar.Name = (string)imimi.Items[2];
lar.Image = (string)imimi.Items[3];
this.items.Add (lar);
}
}
}
public override int Count
{
get { return items.Count; }
}
public override Java.Lang.Object GetItem(int position)
{
return position;
}
public override long GetItemId(int position)
{
return position;
}
public LawsAndRegs GetItemAtPosition(int position)
{
return items[position];
}
public override View GetView(int position, View convertView, ViewGroup parent)
{
//Get our object for this position
var item = items[position];
//Try to reuse convertView if it's not null, otherwise inflate it from our item layout
// This gives us some performance gains by not always inflating a new view
// This will sound familiar to MonoTouch developers with UITableViewCell.DequeueReusableCell()
var view = (convertView ?? context.LayoutInflater.Inflate(Resource.Layout.LawsAndRegsListItem, parent, false)) as LinearLayout;
//Find references to each subview in the list item's view
ImageView imgView = (ImageView)view.FindViewById(Resource.Id.imageItem);
imgView.Clickable = true;
TextView textTop = (TextView)view.FindViewById(Resource.Id.textTop);
textTop.Clickable = true;
var bm = BitmapFactory.DecodeStream(
new Java.Net.URL("http://www.SOME_SITE.com/" + item.Image).OpenStream());
imgView.SetImageBitmap(bm);
//Assign this item's values to the various subviews
textTop.SetText(item.Name, TextView.BufferType.Normal);
view.Clickable = true;
//Finally return the view
return view;
}
我添加了 view.clickable 代码来尝试让它工作。
最佳答案
终于!!我发现了我的问题...原来问题出在 ListView 中的 ImageButton。它正在窃取焦点并消耗触摸事件。所以在我的自定义适配器中,在 GetView 中我需要执行如下操作:
var imageButton = view.FindViewById<ImageButton>(Resource.Id.imageButton1);
imageButton.Focusable = false;
imageButton.FocusableInTouchMode = false;
imageButton.Clickable = true;
imageButton.Click += (sender, args) => Console.WriteLine("ImageButton {0} clicked", position);
这会从图像按钮上移除焦点。解决方案是在这里给我的:http://forums.xamarin.com/discussion/871/how-do-i-get-itemclick-of-a-listview-to-get-called-not-sure-what-have-wrong#latest奶酪男爵。谢谢 Cheesebaron!!!
我希望这可以帮助另一个有类似问题的新手!!
关于android - 无法获取要在 MonoDroid 中调用的 listView.ItemClick,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14443364/
我需要您在以下方面提供帮助。近一个月来,我一直在阅读有关任务和异步的内容。 我想尝试在一个简单的 wep api 项目中实现我新获得的知识。我有以下方法,并且它们都按预期工作: public Htt
我的可执行 jar 中有一个模板文件 (.xls)。不需要在运行时我需要为这个文件创建 100 多个副本(稍后将唯一地附加)。用于获取 jar 文件中的资源 (template.xls)。我正在使用
我在查看网站的模型代码时对原型(prototype)有疑问。我知道这对 Javascript 中的继承很有用。 在这个例子中... define([], function () { "use
影响我性能的前三项操作是: 获取滚动条 获取偏移高度 Ext.getStyle 为了解释我的应用程序中发生了什么:我有一个网格,其中有一列在每个单元格中呈现网格。当我几乎对网格的内容做任何事情时,它运
我正在使用以下函数来获取 URL 参数。 function gup(name, url) { name = name.replace(/[\[]/, '\\\[').replace(/[\]]/,
我最近一直在使用 sysctl 来做很多事情,现在我使用 HW_MACHINE_ARCH 变量。我正在使用以下代码。请注意,当我尝试获取其他变量 HW_MACHINE 时,此代码可以完美运行。我还认为
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 关闭 9 年前。 要求提供代码的问题必须表现出对所解决问题的最低限度的理解。包括尝试过的解决方案、为什么
由于使用 main-bower-files 作为使用 Gulp 的编译任务的一部分,我无法使用 node_modules 中的 webpack 来require 模块code> dir 因为我会弄乱当
关闭。这个问题需要更多focused .它目前不接受答案。 想改进这个问题吗? 更新问题,使其只关注一个问题 editing this post . 关闭 5 年前。 Improve this qu
我使用 Gridlayout 在一行中放置 4 个元素。首先,我有一个 JPanel,一切正常。对于行数变大并且我必须能够向下滚动的情况,我对其进行了一些更改。现在我的 JPanel 上添加了一个 J
由于以下原因,我想将 VolumeId 的值保存在变量中: #!/usr/bin/env python import boto3 import json import argparse import
我正在将 MSAL 版本 1.x 更新为 MSAL-browser 的 Angular 。所以我正在尝试从版本 1.x 迁移到 2.X.I 能够成功替换代码并且工作正常。但是我遇到了 acquireT
我知道有很多关于此的问题,例如 Getting daily averages with pandas和 How get monthly mean in pandas using groupby但我遇到
This is the query string that I am receiving in URL. Output url: /demo/analysis/test?startDate=Sat+
我正在尝试使用 javascript 中的以下代码访问 Geoserver 层 var gkvrtWmsSource =new ol.source.ImageWMS({ u
API 需要一个包含授权代码的 header 。这就是我到目前为止所拥有的: var fullUrl = 'https://api.ecobee.com/1/thermostat?json=\{"s
如何获取文件中的最后一个字符,如果是某个字符,则删除它而不将整个文件加载到内存中? 这就是我目前所拥有的。 using (var fileStream = new FileStream("file.t
我是这个社区的新手,想出了我的第一个问题。 我正在使用 JSP,我成功地创建了 JSP-Sites,它正在使用jsp:setParameter 和 jsp:getParameter 具有单个字符串。
在回答 StoreStore reordering happens when compiling C++ for x86 @Peter Cordes 写过 For Acquire/Release se
我有一个函数,我们将其命名为 X1,它返回变量 Y。该函数在操作 .on("focusout", X1) 中使用。如何获取变量Y?执行.on后X1的结果? 最佳答案 您可以更改 Y 的范围以使其位于函
我是一名优秀的程序员,十分优秀!