一个列表视图中微调:单声道为Android [英] Mono for Android: Spinner within a listview

查看:227
本文介绍了一个列表视图中微调:单声道为Android的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个是通过一个ArrayAdapter web服务填充列表视图。
web服务提供了我需要的所有数据。有些只是普通的textviews还没有的EditText和纺纱厂之间的其它替代。我告诉他们轻松,也填补了在那里他们的EditText领域由于是值。

I have a listview which is populated from a webservice using an ArrayAdapter. The webservice provides me with all the data I need. Some are just plain textviews yet other alternate between EditText and spinners. I show them easily, also filling up the values where they're due in EditText fields.

问题带有填补了微调的价值。我可以定义一个适配器中的适配器?另外我的数据来自一个web服务作为一个字符串传递的XML。

The problem comes with filling up the value of the Spinner. Can I define an adapter within an adapter? Also my data comes from a webservice as an XML passed as a string.

我的微调code到目前为止,我Adapter.cs里:

My Spinner code so far inside my Adapter.cs:

if (item.FieldType == "OptionBOX")
    {
        Spinner SpinnerValue = (Spinner) view.FindViewById<Spinner>(Resource.Id.spinnerVal);
        SpinnerValue.Visibility = view.Visibility == ViewStates.Invisible ? ViewStates.Invisible : ViewStates.Visible;

        bool isReadOnly = bool.Parse(item.isReadOnly);

        if (isReadOnly == true)
        {
            SpinnerValue.Enabled = false;
            SpinnerValue.Focusable = false;
            SpinnerValue.FocusableInTouchMode = false;
        }
    }

我对微调数据item.optbox_options之内。

My data for the spinner is within item.optbox_options.

从我的XML的表更容易理解:

A table from my XML for easier understanding:

<Table diffgr:id="Table5" msdata:rowOrder="4">
<IdRec>5</IdRec>
<FieldId>1026</FieldId>
<FieldDesc>stanje rezervoarja</FieldDesc>
<FieldType>ComboBOX</FieldType>
<isReadOnly>true</isReadOnly>
<FieldValue>6</FieldValue>
<FieldTextValue>2/4</FieldTextValue>
<OptBox_Options>
<Options><myOPT FieldValue="1" FieldTextValue="0"/><myOPT FieldValue="2" FieldTextValue="1/4"/><myOPT FieldValue="6" FieldTextValue="2/4"/><myOPT FieldValue="7" FieldTextValue="3/4"/><myOPT FieldValue="8" FieldTextValue="4/4"/></Options>
</OptBox_Options>
</Table>

所以,我只想澄清我的需求和希望:
我可以使用适配器适配器内,如果我能 - 怎么样?
我怎样才能显示来自OptBox_Options行的数据?我需要显示在里面我的纺纱从FieldTextValue列的值。

So just to clarify my needs and wants: Can I use an adapter within an adapter and if I can - how? How can I display data from the OptBox_Options row? I need to display the value from the FieldTextValue column inside in my spinners.

推荐答案

使用解决:

List<string> entries = new List<string>();

String rawXML = item.OptBox_Options;

StringReader stream = null;
XmlTextReader reader = null;

DataSet xmlDS = new DataSet();
stream = new StringReader(rawXML);
// Load the XmlTextReader from the stream
reader = new XmlTextReader(stream);
xmlDS.ReadXml(reader);

DataSet myOPTvalues = new DataSet();
myOPTvalues = xmlDS;

foreach (DataRow row in myOPTvalues.Tables[0].Rows)
{
    var optItem = new PrevzemSpin();
    optItem.FieldValue = row["FieldValue"].ToString();
    if (optItem.FieldValue.Equals("")) optItem.FieldValue = null;

    optItem.FieldTextValue = row["FieldTextValue"].ToString();
    if (optItem.FieldTextValue.Equals("")) optItem.FieldTextValue = null;

    entries.Add(optItem.FieldTextValue);
    SpinnerValue.Tag = optItem.FieldValue;
}

这篇关于一个列表视图中微调:单声道为Android的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆