私はアンドロイド開発の初心者で、文字列配列の値を使用してスライド メニューを作成しようとしていました。各行を適切なアイコンでカスタマイズしてから、スライドメニューのテキストを多言語にカスタマイズしたいので、このようにしたいと思います。コードをロードすると、すべての値を読み取っていることが示されますが、ここで例外がスローされます:
私のコード:
public class Slide_Menu extends SherlockListFragment {
private String TAG = getClass().getSimpleName();;
private ListView listView;
private Context ctx;
private View view;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// TODO Auto-generated method stub
Log.i(TAG,"Slide Menu is called");
this.view = inflater.inflate(R.layout.slide_menu, null);
this.ctx = getActivity();
return this.view;
}
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
Log.i(TAG,"Slide Menu is on onActivityCreated");
try {
List menu_list= new ArrayList();
Resources res = getResources();
String[] menu_values = res.getStringArray(R.array.slide_menu_options);
for(int i=0; i<=menu_values.length;i++)
{
Log.i(TAG,"Adding the items on the Slide Menu: " + menu_values[i].toString());
menu_list.add(new SlideMenu_Contents(menu_values[i].toString(),"search"));
}
Log.i(TAG,"Slide Menu is on Loop");
this.listView = (ListView) this.view.findViewById(R.id.list);
this.listView.setAdapter( new SlideMenu_Adapter(this.ctx, R.layout.single_row_slidingmenu, menu_list ) );
}
catch (Exception e) {
Log.i(TAG,"Error on loading the string menu on Slide Menu.");
}
}
}
SlideMenu_Adapter、SlideMenu_Contents などの他のファイルは例と同じです。SlideMenu_Contents にはテキストと画像しかないように、必要に応じて変更しました。
ここに私のレイアウトがあります: single_row_slidingmenu.xml
<!-- ListRow Left sied Thumbnail image -->
<LinearLayout android:id="@+id/thumbnail"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="3dip"
android:layout_alignParentLeft="true"
android:layout_marginRight="5dip">
<ImageView
android:id="@+id/image_option"
android:layout_width="50dip"
android:layout_height="50dip"
android:contentDescription=""/>
</LinearLayout>
<!-- Title Of Song-->
<TextView
android:id="@+id/slidemenu_text_option"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignTop="@+id/thumbnail"
android:layout_toRightOf="@+id/thumbnail"
android:text=""
android:textColor="#040404"
android:typeface="sans"
android:textSize="15sp"
android:textStyle="bold"/>
</RelativeLayout>
スライドメニュー.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
android:background="@drawable/slidemenu_list_selector">
<ListView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@android:id/list"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:paddingLeft="@dimen/list_padding"
android:paddingRight="@dimen/list_padding"
android:divider="#1e1e1e"
android:dividerHeight="2dp"
android:textColor="@color/slidemenu_textcolour"
android:listSelector="@drawable/slidemenu_list_selector">
</ListView>
</LinearLayout>