【问题标题】:Set an item to the footer of listview将项目设置到列表视图的页脚
【发布时间】:2015-02-12 10:32:40
【问题描述】:

我有一个从字符串填充的导航抽屉,通过使用它们的位置,我正在处理要启动的活动,我只想listview 最后一项应该出现在listview 的页脚处。

我使用了setFooter 属性,但它不起作用。

有什么办法呢?

代码如下:

class MyAdapter extends BaseAdapter {
    private Context context;
    String[] navlist;
    int[] images = { R.drawable.job, R.drawable.career, R.drawable.project,
            R.drawable.facebook, R.drawable.games, R.drawable.mail, R.drawable.rate };

    public MyAdapter(Context context) {
        this.context = context;
        navlist = context.getResources().getStringArray(R.array.navdra);
    }

    @Override
    public int getCount() {
        // TODO Auto-generated method stub
        return navlist.length;
    }

    @Override
    public Object getItem(int position) {
        // TODO Auto-generated method stub
        return navlist[position];
    }

    @Override
    public long getItemId(int position) {
        // TODO Auto-generated method stub
        return position;
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        View row = null;
        if (convertView == null) {
            LayoutInflater inflater = (LayoutInflater) context
                    .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
            row = inflater.inflate(R.layout.customrow, parent, false);
        }

        else {
            row = convertView;
        }
        TextView titleTextView = (TextView) row.findViewById(R.id.textView11);
        ImageView titleImageView = (ImageView) row
                .findViewById(R.id.imageView1);
        titleTextView.setText(navlist[position]);
        titleImageView.setImageResource(images[position]);

        return row;
    }

}

ListView 和 ArrayAdapter 代码:

listView = (ListView) findViewById(R.id.drawerlist);
        myAdapter = new MyAdapter(this);

        listView.setAdapter(myAdapter);
        listView.setOnItemClickListener(this);
        drawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);
        drawerListner = new ActionBarDrawerToggle(this, drawerLayout,
                R.drawable.ic_drawer, R.string.dopen, R.string.dclose);

        drawerLayout.setDrawerListener(drawerListner);

【问题讨论】:

  • 你在listview的页脚设置的代码在哪里?
  • 那我问怎么用,不知道怎么按位置来用..
  • 您想将该视图添加到列表视图的底部吗?例如,listview 底部的按钮?
  • 我想要最后一项,即“Rate app”位置 6 位于列表视图的页脚..
  • 查看某项是否已在底部,则无需再次放入页脚。就像@Nirav Tukadiya 给出了正确答案一样,您必须在活动中膨胀布局/元素并添加到列表视图的底部。

标签: android listview android-arrayadapter navigation-drawer


【解决方案1】:

请查看示例代码将页脚设置为 ListView

mListview = (ListView) mContentView.findViewById(R.id.myListView);

// Inflating header and footer view to ListView
ViewGroup header = (ViewGroup) inflater.inflate(R.layout.header_item, mListview,false);
ViewGroup footer = (ViewGroup) inflater.inflate(R.layout.footer_item,mListview,false);

// Adding view to mlist header and footer
mListview.addHeaderView(header, null, false);
mListview.addFooterView(footer, null, false);

// Initializing the adapter
ListAdapter adapter = new ListAdapter(getNGAActivity(), myData);

// Setting the listview adapter
mListview.setAdapter(adapter);

我希望代码 cmets 是不言自明的

【讨论】:

  • 没关系...但我想这就是您所需要的...您能简要介绍一下您还需要什么... addFooterView 将在列表视图中添加一个页脚,仅此而已
  • 好吧,然后如何添加一个位于该列表视图第 6 位的项目....?
  • 你有所有你想在 context.getResources().getStringArray(R.array.navdra) 中显示的值吗?
  • 只使用 n-1 项 @Override public int getCount() { // TODO 自动生成的方法存根 return navlist.length -1 ; } 从您的数组中或为您的最后一项创建一个字符串值,并在您的页脚中使用它来添加 .我猜你只有字符串显示在列表视图中
  • @Puneet Kushwah 如果您发现我提供的信息有用,请点赞:P
【解决方案2】:

列表视图没有像“setfooter”这样的方法。 您可以使用以下代码扩展页脚布局并将其作为页脚添加到列表视图。

View footerView = ((LayoutInflater)ActivityContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE)).inflate(R.layout.footer_layout, null, false);

ListViewObject.addFooterView(footerView);

看到这个答案How to add a footer in ListView?

希望它会有所帮助。谢谢。

【讨论】:

  • 我只有一个线性布局,我还没有创建任何视图......有没有一种方法可以识别第 6 个位置并将其放置在页脚中?
  • 最后添加不需要标识,6条或者600条都无所谓,最后添加视图。
  • 是的,您需要使用 addFooterView 方法添加。
猜你喜欢
  • 2016-07-16
  • 2016-05-22
  • 1970-01-01
  • 2013-06-08
  • 1970-01-01
  • 2020-11-11
  • 2011-07-23
  • 1970-01-01
  • 2021-02-08
相关资源
最近更新 更多