我有一個arrayoutofboundsexception錯誤在我的2列的列表視圖,arrayoutofboundsexception的Android定製適配器列表視圖
請檢查下面我的代碼:
private static ListView lv;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.meal_result);
BreakFastLog info = new BreakFastLog(this);
info.open();
String data1 = info.getMealNameData();
String data2 = info.getServingData();
String[] inputData = data1.split(" ");
String[] inputData2 = data2.split(" ");
lv = (ListView) findViewById (R.id.lvBF);
/*
ArrayList<HashMap<String, String>> mylistData =
new ArrayList<HashMap<String, String>>();
int[] columnIds = new int[] {
R.id.tvBreakfastMealContainer, R.id.tvBreakfastServingContainer};
HashMap<String, String> map = new HashMap<String, String>();
//initialize row data
map.put("Meal", data1);
map.put("Serving", data2);
mylistData.add(map);
//lv.setAdapter(new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1, inputData));
//SimpleAdapter arrayAdapter =
// new SimpleAdapter(this, mylistData, R.layout.breakfast_listview_header,
// new String[] {"Meal", "Serving"}, columnIds);
//lv.setAdapter(arrayAdapter); */
lv.setAdapter(new MyCustomAdapter(inputData, inputData2));
lv.setTextFilterEnabled(true);
info.close();
}
class MyCustomAdapter extends BaseAdapter
{
String[] data_meal;
String[] data_serving;
MyCustomAdapter()
{
data_meal = null;
data_serving = null;
}
MyCustomAdapter(String[] meal, String[] serving)
{
data_meal = meal;
data_serving = serving;
}
public int getCount()
{
return data_meal.length;
}
public String getItem(int position)
{
return null;
}
public long getItemId(int position)
{
return position;
}
public View getView(int position, View convertView, ViewGroup parent)
{
LayoutInflater inflater = getLayoutInflater();
View row;
row = inflater.inflate(R.layout.breakfast_listview_header, parent, false);
TextView txtMeal = (TextView) row.findViewById (R.id.tvBreakfastMealContainer);
TextView txtServing = (TextView) row.findViewById (R.id.tvBreakfastServingContainer);
txtMeal.setText(data_meal[ position ]);
txtServing.setText(data_serving[ position ]);
return (row);
}
}
請幫我找出什麼地方出了錯。謝謝。
確保'data_meal'和'data_serving'數組的大小相同,或確保您的適配器採用此考慮。 – Luksprog
請閱讀listview優化 – Mikhaili
@Luksprog嗨,它不顯示數組元素。 –