2010-11-02 78 views
2

我已創建了一個列表視圖..它是有5個項目...的Android的ListView

現在我想分裂列表項...

當用戶clickon第一列表項或側重於第一項然後立即它必須顯示跟隨一些文字視圖或其他東西..但它必須顯示相同的列表..

和agian相同,當他點擊或專注於第一個項目必須關閉第二個項目和第二個項目必須採取行動...

回答

0

問題是你不能在你的情況下使用標準的ListView,因爲在標準的ListView中,每行的視圖必須是一個TextView。 在你的情況下,你需要它至少有兩個TextViews(標準文本,並將出現onClick/onFocus)。

您必須創建自定義ListAdapter,並重寫getView()函數。 下面的代碼片段顯示瞭如何正確地做到這一點: Custom Adapter

在getView(),你有誇大描述你的列表行的XML文件,並將其返回。 就你而言,我相信你的XML文件應該包含2個TextViews,一個可見和一個不可見。

然後,要處理點擊,您可以在您的Activity類的ListView中設置onItemClickListener。 最好的方法可能是讓Activity類實現onItemClickListener,並使用onItemClickListener來處理它們。 在onClick()函數中,您只需將隱藏的TextView的可見性設置爲可見。

+0

我已經完成WAHT U SUGESTEDAbstMainActivity照顧LayoutInflater mInflater; getCount();對象getItem(int位置); getItemId(int位置);持有人=新ViewHolder (); holder.text =(TextView)convertView .findViewById(R.id.TextView01); holder.text2 =(TextView)convertView .findViewById(R.id.TextView02); convertView.setTag(保持器); } else {holder =(ViewHolder)convertView.getTag(); } holder.text.setText(符號[位置]); holder.text2。的setText(MAINMENU [位置]);返回convertView; – 2010-11-02 12:34:21

+0

public void onCreate(Bundle savedInstanceState){super.onCreate(savedInstanceState);的setContentView(R.layout.main); ListView l1 =(ListView)findViewById(R.id.ListView01); l1.setAdapter(new AbstMainActivity(this)); – 2010-11-02 12:36:01

+0

我不知道我如何分割列表項目 – 2010-11-02 12:36:58

0

你需要建立自定義行,一個d句柄在每一行上顯示更多文本,但沒有簡單的方法來實現它,但是膨脹了自己的行,並且設置一些屬性的可見性並不是那麼困難。

+0

你可以給任何建設自定義行sugesstions .... – 2010-11-02 12:13:49

2

我認爲你需要實現「Expandable Listview」這個概念,以便點擊一個項目,它會用它們的子項目進行擴展。

請參閱可擴展的ListView的Android的SDK頁:http://developer.android.com/reference/android/widget/ExpandableListView.html

對於具有例如,檢查這個網站:http://mylifewithandroid.blogspot.com/2008/05/expandable-lists.html

Pls, check the below image, do you want to perform as same ????

​​

If you want to do the same, it is already given in the "API-Demos" at Views/Expandable Lists/1. Custom Adapter

享受!

+0

public void onCreate(Bundle savedInstanceState){ super.onCreate(savedInstanceState); setContentView(R.layout.main); ListView l1 =(ListView)findViewById(R.id.ListView01); l1.setAdapter(new AbstMainActivity(this)); – 2010-11-02 12:29:21

+0

AbstMainActivity負責維護LayoutInflater mInflater; getCount(); Object getItem(int position); getItemId(int position); holder = new ViewHolder(); holder.text =(TextView)convertView .findViewById(R.id.TextView01) ; holder.text2 =(TextView)convertView .findViewById(R.id.TextView02); convertView.setTag(holder); } else { holder =(ViewHolder)convertView.getTag(); } holder.text.setText(symbol [position]); holder.text2.setText(mainMenu [position]); return convertView; – 2010-11-02 12:33:21

+0

@ a.t.obulreddy更好的是你更新你的問題,而不在這裏發表評論,並檢查我更新的答案! – 2010-11-02 12:35:01