任何人都可以提供給我two_line_list_item的例子嗎?任何人都可以在Android中爲我提供Two_line_list_item的示例嗎?
回答
我還沒有找到一個實際使用內置佈局的例子,android.R.layout.two_line_list_item
和ListView
insp ListActivity
。所以在這裏。
如果您趕時間,下面的覆蓋TwoLineArrayAdapter.getView()
是使用默認two_line_list_item
佈局的重要部分。
你的數據
你有一個類定義列表項。我會假設你有這些數組。
public class Employee {
public String name;
public String title;
}
抽象TwoLineArrayAdapter
這個抽象類可以重複使用,使後來確定兩行ListView
容易得多。你可以提供你自己的佈局,但這兩個參數的構造函數使用內置的two_line_list_item
佈局。 自定義列表項目佈局的唯一要求是他們必須使用@android:id/text1
和@android:id/text2
來識別他們的TextView
子項,就像two_line_list_item
一樣。
public abstract class TwoLineArrayAdapter<T> extends ArrayAdapter<T> {
private int mListItemLayoutResId;
public TwoLineArrayAdapter(Context context, T[] ts) {
this(context, android.R.layout.two_line_list_item, ts);
}
public TwoLineArrayAdapter(
Context context,
int listItemLayoutResourceId,
T[] ts) {
super(context, listItemLayoutResourceId, ts);
mListItemLayoutResId = listItemLayoutResourceId;
}
@Override
public android.view.View getView(
int position,
View convertView,
ViewGroup parent) {
LayoutInflater inflater = (LayoutInflater)getContext()
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View listItemView = convertView;
if (null == convertView) {
listItemView = inflater.inflate(
mListItemLayoutResId,
parent,
false);
}
// The ListItemLayout must use the standard text item IDs.
TextView lineOneView = (TextView)listItemView.findViewById(
android.R.id.text1);
TextView lineTwoView = (TextView)listItemView.findViewById(
android.R.id.text2);
T t = (T)getItem(position);
lineOneView.setText(lineOneText(t));
lineTwoView.setText(lineTwoText(t));
return listItemView;
}
public abstract String lineOneText(T t);
public abstract String lineTwoText(T t);
}
一個具體TwoLineArrayAdapter
最後,這裏是你寫具體到你的Employee類,以便它會在你的ListView
渲染代碼。
public class EmployeeArrayAdapter extends TwoLineArrayAdapter<Employee> {
public EmployeeArrayAdapter(Context context, Employee[] employees) {
super(context, employees);
}
@Override
public String lineOneText(Employee e) {
return e.name;
}
@Override
public String lineTwoText(Employee e) {
return e.title;
}
}
Activity.onCreate()
在你活動的onCreate()
方法,你就會有代碼看起來像這樣:
employees = new Employee[...];
//...populate the employee array...
employeeLV = (ListView)findViewById(R.id.employee_list);
employeeLV.setAdapter(new EmployeeArrayAdapter(this, employees);
真棒回答,謝謝。我可能會建議另外實現getDropDownView(int position,View convertView,ViewGroup parent),以便它在該上下文中正確顯示。您的實現可以簡單地爲:return getView(...) – Keith 2013-06-04 21:41:00
- 1. 任何人都可以提供Kafka Sink Connector示例Java?
- 2. 任何人都可以提供JMeter的示例excel負載測試報告嗎?
- 3. 任何人都可以提供訪問此Last.FM API的代碼示例嗎?
- 4. 任何人都可以提供一個SQLite「SetTimeout」的C#示例嗎?
- 5. 任何人都可以向我展示一些Veracity用例嗎?
- 6. 任何人都可以爲我提供salesforce oauth2.0 REST API的PHP庫嗎?
- 7. 任何機構都可以提供取消點的提示嗎?
- 8. 任何人都可以提供數據加載aikau形式的例子嗎?
- 9. 任何人都可以提供React-Redux Jest測試的例子嗎?
- 10. 任何人都可以幫助我嗎?
- 11. 任何人都可以爲php 5.3.0提供uploadprogress.dll擴展?
- 12. 任何人都可以爲C#提供一個漂亮的vim插件嗎?
- 13. 任何人都可以用示例解釋string.compare(_:options:range:locale :)嗎?
- 14. 任何人都可以共享一個示例.lldbinit文件嗎?
- 15. 任何人都可以幫助我舉例Android的SSH代碼?
- 16. 任何人都可以給我實時的sqlite示例
- 17. 任何人都可以給Android TabHost示例代碼?
- 18. 任何人都可以幫助我提高查詢效率嗎?
- 19. 任何人都可以提供示例代碼,通過Android中的藍牙發送CSV文件的值?
- 20. 任何人都可以提供有關SilverStripe開發環境的任何提示嗎?
- 21. 任何人都可以給我一個JSF2.0 + richfaces4.0的工作示例嗎?
- 22. 任何人都可以指向我的Spring MVC,Tiles,Freemarker集成示例嗎?
- 23. 任何人都可以通過SOAP在Java中爲我提供使用Web服務的代碼嗎?
- 24. 任何人都可以給我示例代碼_dupenv_s?
- 25. Android:任何人都可以幫我解析XML嗎?
- 26. 任何人都可以提供給我一個基於引用的鏈表的例子嗎?
- 27. 任何人都知道我可以如何運行Android示例應用程序?
- 28. 任何人都可以提供我在整合FriendFeed API的一些信息
- 29. 任何人都可以在c中幫助我嗎?
- 30. 任何人都可以點我在Angular2
[這裏](HTTP://mylifewithandroid.blogspot。 com/2008/03/my-first-meeting-with-simpleadapter.html)你可以找到一個例子。此樣式爲您提供了一個包含兩行文本的項目,可能具有不同的格式。 – 2010-01-21 13:36:43
這不是一個TwoLineListItem視圖,本教程使用簡單的ListView。 – mudit 2011-01-19 10:15:57