私は現在、DrawerLayout と ArrayAdapter サブクラスを使用して、Facebook の引き出しメニューのようなものを実現するために、自分のアプリのメニューを作成しています。
現在、リストの作成に問題はありませんが、見栄えがよくなったので、さまざまな種類のオプション (つまり、ユーザー関連およびアプリケーション関連のオプション) の間にセパレーターを追加し、メニューの上に検索バーを追加したいと考えています。
現在の ArrayAdaptor サブクラスのコードは次のとおりです。
public class DrawerMenuAdapter extends ArrayAdapter<String>{
private Context context;
private String[] values;
private int resId;
public DrawerMenuAdapter(Context context, int textViewResourceId, String[] values) {
super(context, textViewResourceId, values);
this.context = context;
this.values = values;
this.resId = textViewResourceId;
}
@Override
public View getView(int position, View convertView, ViewGroup parent){
LayoutInflater inflater = (LayoutInflater) context
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View rowView = inflater.inflate(this.resId, parent, false);
TextView elementText = (TextView)rowView.findViewById(R.id.element_text);
ImageView elementImage = (ImageView)rowView.findViewById(R.id.element_icon);
String textValue = values[position];
elementText.setText(textValue);
//This switch adds the icons to the related elements
switch (position){
case 0:
elementImage.setImageResource(R.drawable.search);
break;
case 1:
elementImage.setImageResource(R.drawable.facebook_friends);
break;
case 2:
elementImage.setImageResource(R.drawable.flirts_history);
break;
case 3:
elementImage.setImageResource(R.drawable.premium);
break;
case 4:
elementImage.setImageResource(R.drawable.settings);
break;
case 5:
elementImage.setImageResource(R.drawable.share_app);
break;
case 6:
elementImage.setImageResource(R.drawable.cgu);
break;
}
return rowView;
}
}
getView 関数を呼び出して ListView に値を設定する関数をオーバーライドする必要があると思いますが、それがどの関数であるかがわかりません。