Как получить данные с EditText в кастомном SimpleCursorAdapter?

Не могу получить данные с EditText в кастомном SimpleCursorAdapter?

class TratiSimpleCursorAdapter extends SimpleCursorAdapter { 
Context ctx; 
DataBaseHelper db;
 
public TratiSimpleCursorAdapter(Context context, int layout, Cursor c, String[] from, int[] to, int flags) { 
    super(context, layout, c, from, to, flags); 
    this.ctx=context; 
} 
 
@SuppressLint("CutPasteId")
@Override 
public void bindView(View view, Context context, Cursor cursor) { 
    db = new DataBaseHelper(null);
    db.openDataBase();
 
    String name = cursor.getString(cursor.getColumnIndex(DataBaseHelper.COLUMN_TRATI_NAME)); 
    int stoimost = cursor.getInt(cursor.getColumnIndex(DataBaseHelper.COLUMN_TRATI_STOIMOST)); 
    TextView formname = (TextView) view.findViewById(R.id.tv_organizer_trati_listitem_name); 
    EditText formstoimost = (EditText) view.findViewById(R.id.et_organizer_trati_listitem_info); 
    int id = cursor.getInt(cursor.getColumnIndex(DataBaseHelper.COLUMN_TRATI_ID));
    formname.setText(name);             
    formstoimost.setText("" + stoimost); 
    
    formstoimost.setOnKeyListener( new View.OnKeyListener() { 
        public  boolean onKey ( View v ,  int keyCode ,  KeyEvent  event )  { 
            if(v != null) {
                Object obj = v.getTag();
                if(obj != null && obj instanceof Integer) {
                    if(event.getAction() == KeyEvent.ACTION_DOWN && 
                            (keyCode == KeyEvent.KEYCODE_ENTER)){
                    // открываем подключение к БД
                    db = new DataBaseHelper(null);
                    db.openDataBase();
                    if (!formstoimost.getText().toString().equals("")){                 {
                    // если есть текст
                        int newStoimost = Integer.parseInt(formstoimost.getText().toString());
                        db.addRecTratiStoimost(((Integer)obj).intValue(), newStoimost);   
                    }
                    }
                        }
                        db.close();
              return true;
            
        } 
            }
            return false;
            }
    });
Object obj = cursor.getInt(cursor.getColumnIndex("_id"));
formstoimost.setTag(obj);
db.close();
} 
}


Не знаю как считать данные введенные пользователем сразу, с занесением их в БД.
Ругается на любое обращение formstoimost.getText().toString() внутри OnKeyListener.
  • Вопрос задан
  • 2429 просмотров
Пригласить эксперта
Ответы на вопрос 1
@zildarius
А как именно ругается? Наверно на то, что это не final переменная?
Попробуйте так:
final EditText formstoimost = (EditText) view.findViewById(R.id.et_organizer_trati_listitem_info);
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы