如何在Xamarin中的ListView中将图像设置为ImageView?
我现在正在使用xamarin.android进行一个项目。我在屏幕上有一个listview,在listview中有一个Imageview,我使用SimpleAdapter来显示集合中的数据。 以下是提取数据采集的函数:如何在Xamarin中的ListView中将图像设置为ImageView?,listview,xamarin,Listview,Xamarin,我现在正在使用xamarin.android进行一个项目。我在屏幕上有一个listview,在listview中有一个Imageview,我使用SimpleAdapter来显示集合中的数据。 以下是提取数据采集的函数: private JavaList<IDictionary<string, Object>> TriggerNetResAndFill() { string uri = "http://www.51yam.com/forum.php
private JavaList<IDictionary<string, Object>> TriggerNetResAndFill()
{
string uri = "http://www.51yam.com/forum.php?mod=recommend";
string content = string.Empty;
var items = new JavaList<IDictionary<string, Object>>();
var stream = streamPicker.GetUriStream(uri);
content = streamPicker.GetStreamText(stream);
HtmlDocument document = new HtmlDocument();
document.LoadHtml(content);
HtmlNodeCollection keyNodes = document.DocumentNode.SelectNodes("//a[@class='xst']");
foreach (HtmlNode keyNode in keyNodes)
{
var map = new JavaDictionary<string, Object>();
map.Add(KEY_ICON, userInfoPicker.GetU());
items.Add(map);
}
return items;
}
然后在mainactivity中,我做了以下工作:
protected override void OnCreate (Bundle bundle)
{
base.OnCreate (bundle);
SetContentView (Resource.Layout.Main);
listview = (ListView)FindViewById<ListView> (Resource.Id.listContent);
processDialog = ProgressDialog.Show(this, "loading", "pls wait...", true);
new Thread(new ThreadStart(() =>
{
RunOnUiThread(new Action(() =>
{
listResult = TriggerNetResAndFill();
var adapter = new SimpleAdapter(this, listResult, Resource.Drawable.list_content,
new String[] { KEY_ICON, KEY_TITLE, KEY_DESC },
new int[] { Resource.Id.lvw_custom_img, Resource.Id.lvw_custom_name, Resource.Id.lvw_custom_description });
listview.Adapter = adapter;
processDialog.Dismiss();
}));
})).Start();
}
protectedoverride void OnCreate(捆绑包)
{
base.OnCreate(bundle);
SetContentView(Resource.Layout.Main);
listview=(listview)FindViewById(Resource.Id.listContent);
processDialog=ProgressDialog.Show(这是“正在加载”,“请等待…”,true);
新线程(新线程开始(()=>
{
RunOnUiThread(新操作(()=>
{
listResult=TriggerNetResAndFill();
var adapter=new simpledapter(这个,listResult,Resource.Drawable.list\u内容,
新字符串[]{KEY_图标,KEY_标题,KEY_DESC},
新int[]{Resource.Id.lvw_custom_img,Resource.Id.lvw_custom_name,Resource.Id.lvw_custom_description});
Adapter=适配器;
processDialog.discouse();
}));
})).Start();
}
但结果是,我没有得到预期的图像。有人能给我一些建议吗?我是xamarin和android的新手,我只是一个C#er。期待你的建议。thx.我不确定你是如何实现你的
视图持有者的,但是通常你只需要用你的列表视图设置一个视图持有者
,在视图持有者
中初始化视图
,你可以做如下操作
image = rootView.FindViewById<ImageView>(Resource.Id.listViewImage);
image.SetImageBitmap(yourMap[desiredKey]);
但是如果位图从未设置,这可能解释了为什么它没有加载
image = rootView.FindViewById<ImageView>(Resource.Id.listViewImage);
image.SetImageBitmap(yourMap[desiredKey]);
image.SetImageBitmap(null);