2013-03-21 65 views
0

初學者問題在這裏我不知道是否有人可以指出我在正確的方向。我需要的,其中每個項目將包含一個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

回答

0

你必須要找到你的子視圖它在你的適配器,您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」在內容視圖,而不是在每一個項目。

+0

好吧,我在原文中增加了一些額外的微調代碼,它不是正確的,但它至少沿着正確的線條?? – 2013-03-21 04:11:12

+0

是的。你的代碼是正確的。你得到什麼輸出 – 2013-03-21 04:15:31

+0

謝謝,我添加了幾個圖像。很高興知道我在正確的軌道上! – 2013-03-21 13:13:58

相關問題