Я создал обычай ListView
, который в каждой строке содержит TextView
и EditText
. Все работает отлично, но я просто не знаю, где я должен установить TextChangeListener
на EditText
, чтобы я мог установить/сохранить введенное значение. Вот мой код:Как добавить TextChangeListener в пользовательский ListView?
RowItem.java
public class RowItem {
private String title;
private String value;
public RowItem(String title, String value) {
this.title = title;
this.value = value;
}
public String getValue() {
return value;
}
public void setValue(String value) {
this.value = value;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
}
CustomList.java
public class CustomList extends ArrayAdapter<RowItem> {
Context context;
List<RowItem> items;
public CustomList(Context context, int resourceId,
List<RowItem> items) {
super(context, resourceId, items);
this.context = context;
this.items = items;
}
/*private view holder class*/
private class ViewHolder {
TextView txtTitle;
EditText txtValue;
}
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder = null;
RowItem rowItem = getItem(position);
LayoutInflater mInflater = (LayoutInflater) context
.getSystemService(Activity.LAYOUT_INFLATER_SERVICE);
if (convertView == null) {
convertView = mInflater.inflate(R.layout.row_item, null);
holder = new ViewHolder();
holder.txtTitle = (TextView) convertView.findViewById(R.id.textView1);
holder.txtValue = (EditText) convertView.findViewById(R.id.editText1);
convertView.setTag(holder);
} else
holder = (ViewHolder) convertView.getTag();
holder.txtTitle.setText(rowItem.getTitle());
holder.txtValue.setText(rowItem.getValue());
return convertView;
}
}
Любое предложение?
Не могли бы вы немного рассказать о 'onFocusChanged'? –
setOnFocusListener и View.OnFocusListener имеет дело с началом и окончанием фокуса, как Javascript. Когда редактируемый текст выполняется с редактированием, вызывается onFocusChanged. – Rajiv