问题描述:首先我有一个ListView,每个Item中包含的布局有若干控件,我让一部分隐藏。当我点击一个按钮时使该隐藏部分出现,点击另一个按钮,使该部分消失。
我用一个类继承了BaseAdapter类,对其中的按钮添加点击事件 ,利用控件的setVisibility属性控制该LinearLayout控件的显示和消失,按常理,每个出现在该Item的下方(按照原本布局的位置),但是结果却不是这样,有时该隐藏部分会出现在最下方,还会有时间上的延迟,我在点击事件里添加了日志,日志能在事件发生后迅速作出相应的。但是界面却不能。
我尝试使用.notifyDataSetChanged()函数:在Activity里面设置线程,探测事件引起的界面改变,然后调用,可是没有明显可见的结果产生
我用一个类继承了BaseAdapter类,对其中的按钮添加点击事件 ,利用控件的setVisibility属性控制该LinearLayout控件的显示和消失,按常理,每个出现在该Item的下方(按照原本布局的位置),但是结果却不是这样,有时该隐藏部分会出现在最下方,还会有时间上的延迟,我在点击事件里添加了日志,日志能在事件发生后迅速作出相应的。但是界面却不能。
我尝试使用.notifyDataSetChanged()函数:在Activity里面设置线程,探测事件引起的界面改变,然后调用,可是没有明显可见的结果产生
解决方案 »
- android JNI下的文件 在发布的时候要删除么
- 为什么总是 Failed to install XXX.apk on device 'emulator-5556! ?
- 谁有android视频播放器源代码,要能用的!哈
- 求教--使用HandlerThread构造Child Handler出现空指针问题
- android 平台下, 前后camera 不能用, lsmod 时, 显示如下. 是什么地方的问题呢?
- android如何实现后台安装程序?就像安卓市场那样?
- 怎么样使用Android不开放的package(com.android.*) ?
- 手机应用闪退,请各位大虾帮忙看下
- 关于安卓
- 本菜鸟在使用pagerview遇到问题求解
- java.net.SocketTimeoutException: Transport endpoint is not connected
- 如何判断apk是launcher还是home
至于为啥有这样问题,我也不清楚,看后面跟帖,关注一下。
楼主的代码估计就是这地方出了问题。
贴一段自己的自定义BaseActivity类中的代码给楼主做下参考,根据条件切换item的图片显示。
@Override
public View getView(int position, View view, ViewGroup arg2) {
// TODO Auto-generated method stub
class ViewHolder {
public ImageView image;
public TextView name;
public ImageView favorite;
}
ViewHolder holder = null;
if (view == null) {
holder = new ViewHolder();
view = LayoutInflater.from(context).inflate(
R.layout.layout_item_list_view, null);
holder.image = (ImageView) view.findViewById(R.id.image);
holder.name = (TextView) view.findViewById(R.id.name);
holder.favorite = (ImageView) view.findViewById(R.id.favorite); holder.favorite.setOnClickListener(this);
view.setTag(holder);
} else {
holder = (ViewHolder) view.getTag();
} holder.name.setText(itemName);
if(bFavorite){
holder.favorite.setImageResource(R.drawable.icon_star);
}else{
holder.favorite.setImageResource(R.drawable.icon_star_gray);
} return view;
}