У меня возникла проблема с получением последнего значения текста в editText, если он уже не находится в фокусе. Когда я вводим значение в первый раз и когда он не в фокусе, я получаю последнее значение, которое я вводил, но во второй раз и т. д. всякий раз, когда я изменяю значение iputed внутри editText, когда он не находится в фокусе, он должен получить значение, которое я вводил, но это меняя последнее значение, которое я вводил, но при сохранении в базе данных он сохраняет значение, которое я действительно ввел в этот tine.I знаю, что трудно понять, что я говорю здесь, но я надеюсь, что вы можете мне помочь .. вот мой кодЗначение, введенное в editext, изменяется на последнее значение, введенное, когда курсор не находится в фокусе.
package com.functions;
import java.util.ArrayList;
import java.util.List;
import com.example.senditem.R;
import android.app.Activity;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.view.inputmethod.InputMethodManager;
import android.widget.ArrayAdapter;
import android.widget.EditText;
import android.widget.Spinner;
import android.widget.TextView;
public class MyAdapter extends ArrayAdapter<Model> {
private final List<Model> list;
String adapter;
private final Activity context;
private final int id;
int listPosition;
public MyAdapter(Activity context, List<Model> list, int id){
super(context, R.layout.userproduct, list);
this.context = context;
this.list = list;
this.id = id;
}
class ViewHolder{
protected TextView text;
EditText quantity;
protected TextView amount;
TextView ext;
Spinner uom;
}
@Override
public View getView(int position, View convertView, ViewGroup parent){
listPosition = position;
ViewHolder viewHolder = null;
if(convertView == null){
LayoutInflater inflator = context.getLayoutInflater();
convertView = inflator.inflate(R.layout.userproduct, null);
viewHolder = new ViewHolder();
viewHolder.text = (TextView) convertView.findViewById(R.id.label);
viewHolder.text.setFocusable(true);
viewHolder.quantity = (EditText) convertView.findViewById(R.id.inputQty);
viewHolder.amount = (TextView) convertView.findViewById(R.id.inputAmt);
viewHolder.uom = (Spinner) convertView.findViewById(R.id.inputUom);
viewHolder.ext = (TextView) convertView.findViewById(R.id.inputTamt);
convertView.setTag(viewHolder);
convertView.setTag(R.id.label, viewHolder.text);
convertView.setTag(R.id.inputQty, viewHolder.quantity);
convertView.setTag(R.id.inputAmt, viewHolder.amount);
convertView.setTag(R.id.inputTamt, viewHolder.ext);
convertView.setTag(R.id.inputUom, viewHolder.uom);
}
else{
viewHolder = (ViewHolder) convertView.getTag();
}
SqliteHelper db = new SqliteHelper(context);
viewHolder.text.setText(list.get(position).getName());
viewHolder.quantity.setId(position);
viewHolder.amount.setText(String.valueOf(list.get(position).getAmt()));
viewHolder.amount.setId(position);
viewHolder.ext.setId(position);
viewHolder.uom.setId(position);
viewHolder.text.setId(position);
String data = db.getAllDetails(id, list.get(position).getitemId());
String data2 = db.getExt(id,list.get(position).getitemId());
if(data==null)
{
viewHolder.quantity.setText(list.get(position).quantity);
}
else{
viewHolder.quantity.setText(data);
}
if(data2==null)
{
viewHolder.ext.setText(String.valueOf(list.get(position).ext));
}
else{
viewHolder.ext.setText(data2);
}
viewHolder.quantity.setOnFocusChangeListener(new View.OnFocusChangeListener() {
public void onFocusChange(View v, boolean hasFocus) {
if (!hasFocus){
final int position = v.getId();
final EditText Caption = (EditText) v;
list.get(position).quantity = Caption.getText().toString();
}
}
});
viewHolder.ext.setOnFocusChangeListener(new View.OnFocusChangeListener() {
public void onFocusChange(View v, boolean hasFocus) {
if (!hasFocus){
final int position = v.getId();
final TextView Caption = (TextView) v;
list.get(position).ext = (float) Integer.parseInt((Caption.getText().toString()));
}
}
});
List<Model> uomlist = (List<Model>)
db.selectUom(list.get(position).getitemId());
List<String> myuom = new ArrayList<String>();
for(int j=0;j<uomlist.size();j++){
myuom.add(uomlist.get(j).getUom());
}
ArrayAdapter<String> uomadapter = new ArrayAdapter<String>(getContext(),android.R.layout.simple_spinner_item,myuom);
uomadapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
viewHolder.uom.setAdapter(uomadapter);
return convertView;
}
}
все еще не работает – phoenix