带有TextView和Spinner的Android ListView
问题描述:
初学者问题在这里我不知道是否有人可以指出我在正确的方向。我需要的,其中每个项目将包含一个TextView和微调从预设量选择“帐户”列表视图,所以每个项目会像这样:带有TextView和Spinner的Android ListView
________________________
|TextView---------Spinner|
|________________________|
这是我到目前为止有:
activity_topup.xml这是活动
<ListView
android:id="@+id/topup_accounts_listview"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:background="@color/stq_grey"
android:divider="@android:color/transparent"
android:dividerHeight="20.0sp"/>
然后在我的Java文件中的主要XML TopUpActivity.java
String[] listAccounts = { "Acc1", "Acc2", "Acc3"};
accountListAdapter = new ArrayAdapter<String>(this, R.layout.listview_item_accounts, R.id.accounts_list_tv, listAccounts);
listView = (ListView)findViewById(R.id.topup_accounts_listview);
listView.setAdapter(accountListAdapter);
listview_item_accounts.xml包含了每个项目的内容(文本视图和微调)
<TextView
android:id="@+id/accounts_list_tv"
android:layout_width="150dp"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_toLeftOf="@+id/accounts_list_amt_spinner"
android:background="@drawable/list_item_selector_grey"
style="@style/ListText" />
<Spinner
android:id="@id/accounts_list_amt_spinner"
android:layout_width="96dp"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:prompt="@string/topup_amt_prompt"
android:background="@drawable/list_item_selector_blue"
style="@style/ListText" />
我在正确的轨道上?结果是正确的,但我不能完全弄清楚如何填充spinners,我可以填充的只是使用这种方法的文本视图。我试图填充纺纱厂也将此添加到java文件,但纺纱保持空:
//Inflate the listview items
LayoutInflater inflater = (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View vi = inflater.inflate(R.layout.listview_item_accounts, null);
//Get the spinner
amt = (Spinner)vi.findViewById(R.id.accounts_list_amt_spinner);
//Add the values to the spinner by setting this adapter
ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this,
R.array.topup_amts, android.R.layout.simple_spinner_item);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
amt.setAdapter(adapter);
Here is the result(纱厂有背景为蓝色):
当我点击的一个它们是空的纺纱厂,I get this
答
你必须要找到你的子视图它在你的适配器,您iflate
您的项目(从listview_item_accounts.xml)作为GroupView名称为“项目”的getView
parent.For例子,那么你必须在其中找到微调:
Spinner amt = (Spinner)item.findViewById(R.id.accounts_list_amt_spinner);
如果使用
Spinner amt = (Spinner)findViewById(R.id.accounts_list_amt_spinner);
你试图找到一种观点认为,它的ID等于“R.id.accounts_list_amt_spinner”在内容视图,而不是在每一个项目。
好吧,我在原文中增加了一些额外的微调代码,它不是正确的,但它至少沿着正确的线条?? – 2013-03-21 04:11:12
是的。你的代码是正确的。你得到什么输出 – 2013-03-21 04:15:31
谢谢,我添加了几个图像。很高兴知道我在正确的轨道上! – 2013-03-21 13:13:58