我在列表视图中有一个textview,我使用自定义适配器来创建listview
,我有一个textview,当我点击textview时,我想更改其中的文本,它适用于一个行,如果它变成多行,它就不会很好地工作,每当我点击第一行时它改变最后一行的文本,它总是改变最后一行的值这是我正在使用的代码
viewHolder.txtCommentLike = (TextView) convertView
.findViewById(R.id.txt_comment_view_like);
viewHolder.txtCommentLike
.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
viewHolder.txtCommentLike
.setText("some string");
}
}
});
点击右下角的文字,但它会更新一个,请有人告诉我为什么会这样
PS:
适配器代码
private LayoutInflater inflater = null;
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
if (convertView == null) {
if (inflater == null) {
inflater = (LayoutInflater) mContext
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}
convertView = inflater.inflate(
R.layout.component_comment_view_comment_row, null);
viewHolder = new ViewHolder();
viewHolder.txtCommentLike = (TextView) convertView
.findViewById(R.id.txt_comment_view_like);
convertView.setTag(viewHolder);
}else {
viewHolder = (ViewHolder) convertView.getTag();
}
答案 0 :(得分:0)
我认为它的`OnClickListener没有被解雇。
您可以尝试设置
clickable = "true"
到列表项布局的顶部布局视图..
答案 1 :(得分:0)
终于找到答案我是全局制作ViewHolder
类,所以让局部变量解决问题
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
final ViewHolder viewHolder;
........
这解决了问题