简体   繁体   English

在自定义ListView中更新textview

[英]Update textview in custom ListView

I try to edit data in custom list view by click button. 我尝试通过单击按钮在自定义列表视图中编辑数据。 Inside Listener i edit data in this line 在侦听器中,我在此行中编辑数据

data.get(position).setName("data");

Data is edited but i see changes when i move my listview with edited data out of window bounds and when i move back then i see changes. 数据已被编辑,但是当我将带有编辑数据的列表视图移出窗口边界时,我看到了变化;当我移回列表时,我看到了变化。 My target is to see changes in this time when i click the button. 我的目标是在单击按钮时看到这次更改。 How to do this?? 这个怎么做?? In ListView in each row i have 3 textview and 1 button which i want to edit textview. 在每行的ListView中,我有3个textview和1个要编辑textview的按钮。

import java.util.ArrayList;
import android.app.Activity;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.TextView;

public class UserCustomAdapter extends ArrayAdapter<User> {

int layoutResourceId;
ArrayList<User> data = new ArrayList<User>();
private DataSource datasource;
private Context context;
 private Comment comment;
private String[] dane;
private UserHolder holder;
private User user;
public UserCustomAdapter(Context context, int layoutResourceId,
  ArrayList<User> data) {super(context, layoutResourceId, data);
 this.layoutResourceId = layoutResourceId;
 this.context = context;
 this.data = data;
}

@Override
public View getView(final int position, View convertView, ViewGroup parent) {
View row = convertView;
holder = null;

if (row == null) {
  LayoutInflater inflater = ((Activity) context).getLayoutInflater();
  row = inflater.inflate(layoutResourceId, parent, false);
  holder = new UserHolder();
  holder.textName = (TextView) row.findViewById(R.id.textView1);
  holder.textPrice = (TextView) row.findViewById(R.id.textView2);
  holder.textAttribute = (TextView) row.findViewById(R.id.textView3);
  holder.btnEdit = (Button) row.findViewById(R.id.button1);

  row.setTag(holder);
} else {
  holder = (UserHolder) row.getTag();
}
  user = data.get(position);
  holder.textName.setText(user.getName());
  holder.textPrice.setText(user.getPrice());
  holder.textAttribute.setText(user.getAttribute());
  holder.btnEdit.setOnClickListener(new OnClickListener() {

 @Override
public void onClick(View v) {

  /* datasource = new DataSource(getContext());
   datasource.open();

   comment = datasource.getComment("1");
   dane = comment.toString().split(" ");
    */
   data.get(position).setName("data");

    System.out.println(position);
    }
 });
return row;

}

static class UserHolder {
  TextView textName;
  TextView textPrice;
  TextView textAttribute;
  Button btnEdit;
 }
}

更新后使用notifyDataSetChanged方法

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM