【发布时间】:2016-03-15 06:46:13
【问题描述】:
当我点击列表视图时,它会将该项目更改为不同的布局。但在那之后我不能再点击那个项目了。我应该做些什么?请帮我。谢谢。
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
ViewHolder holder;
if (convertView == null || convertView.getTag() == null) {
convertView = inflater.inflate(R.layout.activity_mainlist_item, parent, false);
holder = new ViewHolder(convertView);
convertView.setTag(holder);
}else {
holder = (ViewHolder) convertView.getTag();
}
holder.rl_item.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
selectedItem(position);
notifyDataSetChanged();
Intent intent = new Intent(mContext.getApplicationContext(), DetailActivity.class);
mContext.startActivity(intent);
}
});
if (this.clk_position == position) {
View view = inflater.inflate(R.layout.activity_mainlist_item_p, null);
return view;
}
return convertView;
}
【问题讨论】:
-
你能解释一下你到底想要什么。这样我们就可以理解场景了。
-
对不起。好吧,首先我有一个列表视图,其中项目使用布局“activity_mainlist_item”进行膨胀,但是在单击它后它会更改为布局“activity_mainlist_item_p”。更改为布局“B”后,我无法再单击该项目。但我可以点击其他项目。
-
发布您选择的项目(位置);方法,您是否在单击项目后更改了 rl_item 视图。
-
是的,点击后我将其更改为新布局。这就是为什么我不能在那个项目上调用 onClick 。我该怎么办? public void selectedItem(int position) { this.clk_position = position; //clk_position 是一个全局变量 } @ReazMurshed
-
您不必更改布局。相反,您可以使用相同的布局并通过设置项目的可见性来实现所需的行为。
标签: android listview layout-inflater