0

我正在尝试用不同的图像替换 android 导航抽屉中的每个列表项。谁能详细说明如何实现这一目标?

谢谢你。

4

1 回答 1

0

首先你可以像这样创建一个数组

final String[] NAV_OPTIONS =  new String[]{"menuOne","menuTwo","menuThree","menuFour"};

然后当我们将我们的列表视图传递给适配器时,我们会这样做

leftDraw.setAdapter(new menuAdapter(Nav_OPTIONS));

适配器应该看起来像这样

    public class menuAdapter extends BaseAdapter {

        String[] menu;

        public menuAdapter(String[] data) {

            menu = data;

        }

        @Override
        public View getView(final int position, View convertView,
                ViewGroup parent) {


            LayoutInflater li = getLayoutInflater();

            //here we just check the position and depending on the string inflate one of our layout xmls
            if(menu[position].equals("menuOne")){
               //inflate our first layout
               convertView = li.inflate(R.layout.menu_one, null);

            }
            else if(menu[position].equals("menuTwo")){
                //inflate our second layout
            convertView = li.inflate(R.layout.menu_two, null);
           }
           else if(menu[position].equals("menuThree")){
                //inflate our third
                convertView = li.inflate(R.layout.menu_three. null);
           }
           else if(menu[position].equals("MenuFour")){
               //and finally our fourth
               convertView = li.inflate(R.layout.menu_four, null);

               //within these if statements we can inflate any buttons, switches, imageviews  
               //we just need to reference them from within the statement as we're infalting the xml in which they are contained
               Button example = (button). convertView.findViewById(R.id.example_button);

           }

           //return the view 
           return covertView;
}

您基本上只需要创建单独的 XML 并根据数组中的位置对它们进行扩展。

编辑

我刚刚意识到您可能只是要求添加单独的图像而不是整个布局。在这种情况下,我的解决方案可能会超出您的需要。

不过,不同的图像以类似的方式工作。只需将您的图像存储在一个数组中,然后根据适配器的索引(int 位置)检索它们。

于 2013-09-05T12:38:13.367 回答