从getView中删除视图

时间:2014-05-21 18:55:05

标签: android android-layout android-ui

我试图在适配器的getView方法中隐藏按钮。不幸的是,我无法做到。

private class AppListAdapter extends ArrayAdapter<Info> {
        public AppListAdapter(Activity activity, List<Info> apps) {
            super(activity, android.R.layout.simple_list_item_1, apps);
        }

        @Override
        public View getView(int position, View convertView, ViewGroup parent) {
            // if we weren't given a view, inflate one
            if (null == convertView) {
                convertView = getLayoutInflater()
                        .inflate(R.layout.activity_apps, null);
            }
            btnUninstall = (Button) convertView.findViewById(R.id.uninstallButton);
            btnUninstall.setOnClickListener(
                    new View.OnClickListener() {
                        @Override
                        public void onClick(View v) {
                             btnUninstall.setVisibility(View.INVISIBLE);
                        }
                    }
            );
            return convertView;
        }

    }

任何帮助都应该受到赞赏?

3 个答案:

答案 0 :(得分:2)

尝试更改此行

btnUninstall.setVisibility(View.INVISIBLE);

到此

v.setVisibility(View.INVISIBLE);

答案 1 :(得分:0)

我检查了代码,它对我来说很好用。 嘿,快问题,你有没有在任何地方声明你的btnUninstall? 我无法在您提供的代码中看到它,就是所有。

     Button btnUninstall; 

答案 2 :(得分:0)

那是因为在适配器中android一遍又一遍地传递相同的视图(回收),尝试每次都将按钮的可见性设置为可见。