我是新的android技術和通過網絡教程學習。雖然綁定列表視圖我混亂,爲什麼我們創建一個單獨的佈局文件,並調用arrayadapter中的佈局文件爲什麼我應該使用額外的佈局文件來呈現ListView?
回答
源的代碼如下所示:http://www.vogella.com/articles/AndroidListView/article.html
當您創建一個簡單的ListView
,你會使用這樣的:
XML:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<ListView
android:id="@+id/mylist"
android:layout_width="match_parent"
android:layout_height="wrap_content" >
</ListView>
</LinearLayout>
JAVA:
ListView listView = (ListView) findViewById(R.id.mylist);
String[] values = new String[] { "Android", "iPhone", "WindowsMobile",
"Blackberry", "WebOS", "Ubuntu", "Windows7", "Max OS X",
"Linux", "OS/2" };
// Define a new Adapter
// First parameter - Context
// Second parameter - Layout for the row
// Third parameter - ID of the TextView to which the data is written
// Forth - the Array of data
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
android.R.layout.simple_list_item_1, android.R.id.text1, values);
// Assign adapter to ListView
listView.setAdapter(adapter);
創建自定義ListView
,你通常會做這樣的事情:
package de.vogella.android.listactivity;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.ImageView;
import android.widget.TextView;
public class MySimpleArrayAdapter extends ArrayAdapter<String> {
private final Context context;
private final String[] values;
public MySimpleArrayAdapter(Context context, String[] values) {
super(context, R.layout.rowlayout, values);
this.context = context;
this.values = values;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
LayoutInflater inflater = (LayoutInflater) context
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View rowView = inflater.inflate(R.layout.rowlayout, parent, false);
TextView textView = (TextView) rowView.findViewById(R.id.label);
ImageView imageView = (ImageView) rowView.findViewById(R.id.icon);
textView.setText(values[position]);
// Change the icon for Windows and iPhone
String s = values[position];
if (s.startsWith("iPhone")) {
imageView.setImageResource(R.drawable.no);
} else {
imageView.setImageResource(R.drawable.ok);
}
return rowView;
}
}
在這個例子中,如果你看行: View rowView = inflater.inflate(R.layout.rowlayout, parent, false);
,在R.layout.rowlayout
是用來顯示您的自定義ListView
您的自定義佈局。
請參閱答案頂部的源代碼鏈接,瞭解關於ListView's
的詳細教程。
@Cupcake:不。它不是從那裏來的。代碼的來源已經在這個答案的第一句話中被賦予了權利。你的第二部分是正確的。這是教程的一部分。 – 2014-07-18 04:59:43
我的錯誤,抱歉。 – 2014-07-18 05:02:24
單獨的xml是爲每一行listview創建的。 listview需要顯示項目,所以應該使用像textview,imageview這樣的視圖來顯示......所以根據你需要的佈局的需要。
您不必創建單獨的佈局。您可以在運行時創建佈局。
- 1. 我應該使用什麼樣的佈局來實現所需的外觀?
- 2. 爲什麼我的HTML5畫布呈現比它應該更小?
- 3. angularjs:呈現模板後我應該使用什麼事件?
- 4. 我應該爲搜索結果使用什麼佈局項目?
- 5. 無法使用LayoutInfalter呈現xml佈局。我做錯了什麼?
- 6. 我應該使用什麼技術來定製iOS控件,佈局等?
- 7. 我應該在XMLHttpRequest中使用什麼回調函數來呈現響應?
- 8. 應該使用android中的什麼佈局來實現下列按鈕?
- 9. 什麼時候應該使用packsize來指定結構佈局?
- 10. Java - 我應該使用什麼樣的Swing佈局?
- 11. 我應該使用什麼樣的佈局,這個Android UI
- 12. 我應該使用什麼樣的佈局
- 13. 我應該使用XmlHttpRequest POST發送額外的頭文件嗎?
- 14. 使用新佈局呈現局部圖
- 15. CakePHP呈現來自內部/外部鏈接的不同佈局文件
- 16. Rails:我的頁面使用html佈局呈現文本結果
- 17. 我應該使用什麼來調度
- 18. 我應該使用什麼標籤來存檔文件大小?
- 19. 爲什麼我應該使用CustomEqualityAttribute來標記我的類型?
- 20. 爲什麼我的應用程序組件呈現應用程序組件?
- 21. 爲什麼Rails在佈局中呈現RJS模板?
- 22. 我應該使用哪種佈局?
- 23. 我應該使用哪種佈局
- 24. Android我應該使用哪種佈局
- 25. 我應該使用哪種佈局?
- 26. 我應該使用哪種佈局?
- 27. 我應該使用什麼C++庫來實現HTTP客戶端?
- 28. 爲什麼我的反應組件不呈現?
- 29. 如何在控制器中呈現工程?爲什麼它不使用佈局?
- 30. 我應該在ListView中使用什麼適配器來使用HashMap
你這樣做,當你想創建一個自定義'ListView'。 – 2013-03-13 06:04:53