我必须创建一个listview,其中单行有4个textview。 我的问题是我不明白如何使用适配器,所以有人可以帮助我使用适配器及其实现?
这是我的布局
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="center"
android:orientation="vertical" >
<TextView
android:id="@+id/textView1"
android:layout_width="192dp"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginBottom="20dp"
android:text="Grazie per aver parcheggiato da noi!"
android:textAppearance="?android:attr/textAppearanceMedium" />
<ListView
android:id="@+id/mylist"
android:layout_width="match_parent"
android:layout_height="wrap_content"
</ListView>
<Button
android:id="@+id/btnEsci"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:text="Torna a scelta" />
</LinearLayout>
这是单行(single_feed)
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<!-- TEXT OF FEED -->
<TextView
android:id="@+id/txtId"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Numero macchina: #"
android:textAppearance="?android:attr/textAppearanceMedium" />
<TextView
android:id="@+id/txtTarga"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Targa: #"
android:textAppearance="?android:attr/textAppearanceMedium" />
<TextView
android:id="@+id/txtOra"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Ora ingresso: #"
android:textAppearance="?android:attr/textAppearanceMedium" />
<TextView
android:id="@+id/txtCosto"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Prezzo uscita: #"
android:textAppearance="?android:attr/textAppearanceMedium"
android:lines="1"
/>
这是我的适配器:
public class MioAdapter extends ArrayAdapter<String> {
private final Context context;
private final String[] values;
public MioAdapter(Context context, String[] values) {
super(context, R.layout.single_feed, 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.single_feed, parent, false);
TextView textView = (TextView) rowView.findViewById(R.id.label);
textView.setText(values[position]);
// Change the icon for Windows and iPhone
return rowView;
}
最后这是我的活动:
public class checkout extends Activity{
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
//apro la view
super.onCreate(savedInstanceState);
setContentView(R.layout.checkout);
//gestsco l'adapter per creare la lista
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
String[] values = new String[] { "Android", "iPhone", "WindowsMobile",
"Blackberry", "WebOS", "Ubuntu", "Windows7", "Max OS X",
"Linux", "OS/2" };
MioAdapter adapter = new MioAdapter(this, values);
setListAdapter(adapter);
};
有人可以帮我配合适配器吗? 感谢所有可以帮助我解决这个问题的方法:)
答案 0 :(得分:2)
行中有两个文本视图,您只需添加四个textview,然后添加行布局文件。并为单行textview添加in textview android:maxLines="1"
。
答案 1 :(得分:1)
对于单行(single_feed):
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal" >
同时保持layout_width对所有文本视图都固定,以便它们可以适合单行。
答案 2 :(得分:1)
答案 3 :(得分:0)
首先,某处出现了问题。如果你想要一个ListView,你需要一个元素列表(一个元素,一行)。
因此,如果您想要每行多个TextView,则每个元素需要多个值。所以你需要一个数组数组。
您也可以尝试使用SimpleCursorAdapter。您使用以下数据构建MatrixCursor:MatrixCursor mc = new MatrixCursor(your_column_names);
并添加元素(每行一个):mc.addRow(row_values);
(其中your_column_names
和row_values
的类型为String[]
)
然后使用SimpleCursorAdapter,其中String[] from = your_column_values
和int[] to = your_TextView_ids
(来自single_feed.xml的ID)