1

*编辑: *我现在可以使用它了。在下面的代码中进行了必要的更改。

我正在尝试在 Android 应用程序中创建一个滑动菜单。滑动菜单必须包含带有图像和文本视图的自定义列表视图。虽然我能够获得滑动菜单,但我似乎无法将任何内容放入列表视图。

这是我的主要活动:

public class Main extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    final Context context=this;
    LayoutInflater inflater=(LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    View v=inflater.inflate(R.layout.slidingmenu, null, true);



    final ListView lv=(ListView) v.findViewById(R.id.listView);

    SlidingMenu menu=new SlidingMenu(this);
    menu.setMode(SlidingMenu.LEFT);
    menu.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN);
    menu.setShadowWidth(5);
    menu.setFadeDegree(0.0f);
    menu.attachToActivity(this, SlidingMenu.SLIDING_CONTENT);
    menu.setBehindWidth(100);
    menu.setMenu(v);
    menu.setOnOpenListener(new OnOpenListener() {

        @Override
        public void onOpen() {
            MenuAdapter ma=new MenuAdapter(context);
            lv.setAdapter(ma);
        }
    });


}

我的适配器类:

public class MenuAdapter extends ArrayAdapter<String>{
Context context;

@Override
public int getCount() {
    return 2;
}

public MenuAdapter(Context c) {
    super(c, R.layout.menucontent);
    context=c;

}

@Override
public View getView(int position, View convertView, ViewGroup parent) {
    /*int height=LinearLayout.LayoutParams.MATCH_PARENT;
    int width=LinearLayout.LayoutParams.MATCH_PARENT;*/


    LayoutInflater inflater=(LayoutInflater) context.
            getSystemService(Context.LAYOUT_INFLATER_SERVICE);

    View view=inflater.inflate(R.layout.menucontent, parent, false);
    TextView tv=(TextView) view.findViewById(R.id.tv_content);

    tv.setText("Hello World");

    return view;
}   

}

PS:我有 3 个不同的 XML 文件 - main.xml 是启动器活动,slidingmenu.xml 显示菜单,最后是 menucontent.xml,其中包含应显示在列表中的文本和图像视图。

4

1 回答 1

0

覆盖,getCount()方法MenuAdapter返回一些大于 1 的值,例如 2、10。然后您将能够看到列表项。

于 2013-03-25T08:19:49.697 回答