mupltie ListViews我有一個簡單的佈局文件,它顯示圖標和一些文本視圖,然後是一個ListView,它使用一些字符串數據填充。BaseAdapter。如何?我有一個LinearLayout
我使用ArrayAdapter來使用android.R.layout.simple_list_item_multiple_choice填充ListView,但是這給了我android的複選框。在這裏,我想用我自己的複選框圖像(檢查和子彈如圖所示)。
我嘗試使用ApiDemos Lists14.java示例中的BaseAdapter示例,但我仍在努力獲取圖像或文本。
任何想法如何重寫getView方法?
我的佈局XML是
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="wrap_content">
<LinearLayout android:id="@+id/linearLayout1" android:layout_height="wrap_content" android:orientation="horizontal" android:layout_width="wrap_content">
<LinearLayout android:id="@+id/linearLayout11" android:layout_height="wrap_content" android:paddingRight="70dp" android:paddingTop="40dp" android:orientation="horizontal" android:paddingLeft="10dp" android:layout_width="wrap_content">
<ImageView android:id="@+id/imageView111" android:layout_height="wrap_content" android:src="@drawable/home" android:clickable="true" android:layout_width="wrap_content"/>
</LinearLayout>
<LinearLayout android:id="@+id/linearLayout12" android:layout_height="wrap_content" android:paddingRight="70dp" android:paddingTop="40dp" android:orientation="vertical" android:paddingLeft="70dp" android:layout_width="wrap_content">
<ImageView android:id="@+id/imageView121" android:layout_height="wrap_content" android:src="@drawable/email" android:clickable="true" android:layout_width="wrap_content"></ImageView>
</LinearLayout>
<LinearLayout android:id="@+id/linearLayout13" android:layout_height="wrap_content" android:paddingRight="70dp" android:orientation="vertical" android:paddingLeft="70dp" android:layout_width="wrap_content">
<ImageView android:id="@+id/imageView131" android:layout_height="wrap_content" android:src="@drawable/baby" android:clickable="true" android:layout_width="wrap_content"></ImageView>
</LinearLayout>
<LinearLayout android:id="@+id/linearLayout14" android:layout_height="wrap_content" android:paddingRight="70dp" android:paddingTop="40dp" android:orientation="vertical" android:paddingLeft="60dp" android:layout_width="wrap_content">
<ImageView android:id="@+id/imageView141" android:layout_height="wrap_content" android:src="@drawable/camera" android:clickable="true" android:layout_width="wrap_content"></ImageView>
</LinearLayout>
<LinearLayout android:id="@+id/linearLayout15" android:layout_height="wrap_content" android:paddingRight="10dp" android:paddingTop="40dp" android:orientation="vertical" android:paddingLeft="10dp" android:layout_width="wrap_content">
<ImageView android:id="@+id/imageView151" android:layout_height="wrap_content" android:src="@drawable/settings" android:clickable="true" android:layout_width="wrap_content"></ImageView>
</LinearLayout>
</LinearLayout>
<LinearLayout android:layout_height="wrap_content" android:layout_width="wrap_content" android:id="@+id/linearLayout2">
<LinearLayout android:paddingRight="70dp" android:layout_height="wrap_content" android:layout_width="wrap_content" android:id="@+id/linearLayout21" android:paddingLeft="10dp">
<TextView android:text="In-Hospital" android:id="@+id/textView211" android:layout_height="wrap_content" android:layout_width="wrap_content" android:paddingRight="10dp" android:paddingLeft="60dp" android:textSize="40dp" android:textStyle="bold"></TextView>
</LinearLayout>
<LinearLayout android:paddingRight="70dp" android:layout_height="wrap_content" android:layout_width="wrap_content" android:id="@+id/linearLayout22" android:paddingLeft="10dp">
<TextView android:text="Home" android:id="@+id/textView221" android:layout_height="wrap_content" android:layout_width="wrap_content" android:paddingLeft="120dp" android:textSize="40dp" android:textStyle="bold"></TextView>
</LinearLayout>
<LinearLayout android:paddingRight="70dp" android:layout_height="wrap_content" android:layout_width="wrap_content" android:id="@+id/linearLayout23" android:paddingLeft="10dp">
<TextView android:text="Nurse" android:id="@+id/textView231" android:layout_height="wrap_content" android:layout_width="wrap_content" android:paddingLeft="180dp" android:textSize="40dp" android:textStyle="bold"></TextView>
</LinearLayout>
</LinearLayout>
<LinearLayout android:orientation="horizontal" android:layout_width="match_parent" android:layout_height="wrap_content" android:splitMotionEvents="true">
<ListView android:id="@+id/list1" android:layout_width="0dip" android:layout_height="match_parent" android:layout_weight="1" />
<ListView android:id="@+id/list2" android:layout_width="0dip" android:layout_height="match_parent" android:layout_weight="1" />
<ListView android:id="@+id/list3" android:layout_width="0dip" android:layout_height="match_parent" android:layout_weight="1" />
</LinearLayout>
</LinearLayout>
和我的代碼是
package com.example;
import android.app.Activity;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ArrayAdapter;
import android.widget.ImageView;
import android.widget.ListAdapter;
import android.widget.ListView;
import android.widget.Toast;
public class Main extends Activity {
ImageView home_icon, mail_icon, baby_icon, camera_icon, settings_icon;
ListView list1, list2, list3;
LayoutInflater inflater;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
home_icon = (ImageView) findViewById(R.id.imageView111);
mail_icon = (ImageView) findViewById(R.id.imageView121);
baby_icon = (ImageView) findViewById(R.id.imageView131);
camera_icon = (ImageView) findViewById(R.id.imageView141);
settings_icon = (ImageView) findViewById(R.id.imageView151);
home_icon.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
System.out.println("Clicked here");
}
});
mail_icon.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
System.out.println("Clicked here");
}
});
baby_icon.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
System.out.println("Clicked here");
}
});
camera_icon.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
System.out.println("Clicked here"+arg0.isClickable());
}
});
settings_icon.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
System.out.println("Clicked here");
}
});
list1 = (ListView) findViewById(R.id.list1);
list2 = (ListView) findViewById(R.id.list2);
list3 = (ListView) findViewById(R.id.list3);
ListAdapter adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_multiple_choice, sCheeseStrings2);
list1.setAdapter(adapter);
list1.setOnItemClickListener(itemClickListener);
list1.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE_MODAL);
ListAdapter adapter1 = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_multiple_choice, sCheeseStrings1);
list2.setAdapter(adapter1);
list2.setOnItemClickListener(itemClickListener);
list2.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE_MODAL);
ListAdapter adapter2 = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_multiple_choice, sCheeseStrings);
list3.setAdapter(adapter2);
list3.setOnItemClickListener(itemClickListener);
list1.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE_MODAL);
list1.setItemsCanFocus(false);
}
private int responseIndex = 0;
private final OnItemClickListener itemClickListener = new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
String[] responses = sCheeseStrings;
String response = responses[responseIndex++ % responses.length];
String message = getResources().getString(R.string.split_touch_view_cheese_toast,
Cheeses.sCheeseStrings[position], response);
Toast toast = Toast.makeText(getApplicationContext(), message, Toast.LENGTH_SHORT);
toast.show();
}
};
static final String[] sCheeseStrings = {"Hushallsost", "Iberico", "Idaho Goatster",
"Idiazabal", "Il Boschetto al Tartufo", "Ile d'Yeu", "Isle of Mull", "Jarlsberg",
"Jermi Tortes", "Jibneh Arabieh", "Jindi Brie", "Jubilee Blue", "Juustoleipa",
"Kadchgall", "Kaseri", "Kashta", "Kefalotyri"
};
static final String[] sCheeseStrings1 = {"Cabecou", "Caboc", "Cabrales", "Cachaille", "Caciocavallo", "Caciotta",
"Caerphilly", "Cairnsmore", "Calenzana", "Cambazola", "Camembert de Normandie",
"Canadian Cheddar", "Canestrato", "Cantal", "Caprice des Dieux", "Capricorn Goat",
"Capriole Banon", "Carre de l'Est", "Casciotta di Urbino", "Cashel Blue", "Castellano"
};
static final String[] sCheeseStrings2 = {"Abbaye de Belloc", "Abbaye du Mont des Cats", "Abertam", "Abondance", "Ackawi",
"Acorn", "Adelost", "Affidelice au Chablis", "Afuega'l Pitu", "Airag", "Airedale",
"Aisy Cendre", "Allgauer Emmentaler", "Alverca", "Ambert", "American Cheese",
"Ami du Chambertin", "Anejo Enchilado", "Anneau du Vic-Bilh", "Anthoriro", "Appenzell"
};
}
感謝您help.Thanks。
重複:此問題已被詢問/回答[這裏](http://stackoverflow.com/questions/3965484/custom-checkb OX-圖像機器人)。 – 2011-03-18 18:29:38
我仍然不明白,因爲在這裏我有一個多ListView被填充,而不只是一個視圖。這個ListView被動態地填充。 – Sana 2011-03-18 18:36:35