2013-05-15 2 views
0

У меня есть функция, которая удаляет запись в списке при нажатии.Преобразование textField в String и String в textField

entriesView.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() { 

    public boolean onItemLongClick(AdapterView<?> parent, 
    View arg1, int position, long id) { 
     TodoEntry entryToRemove = (TodoEntry) parent 
     .getItemAtPosition(position); 

     ourAdapter.remove(entryToRemove); 

     return true; 
    } 
}); 

Я хотел бы изменить эту функцию, чтобы записи не удалялись, но редактировались при длительном нажатии. Я хочу прочитать значение записи (я имею ее в массиве и могу получить String с entryToEdit.toString();) и изменить запись в текстовое поле, которое пользователь может редактировать. Когда он редактируется, текстовое поле должно снова стать записью.

+0

hmmm come again? –

+0

извините, если я объяснил это слишком сложно. У меня есть позиция и значение объекта TodoEntry, и я хочу создать текстовое поле в той же позиции вместо записи со значением записи. Это текстовое поле должно быть доступно для редактирования. Когда редактирование сделано, я хочу преобразовать текстовое поле обратно в TodoEntry. – jason

ответ

0

Для получения String попробуйте использовать метод toString() или используйте базовую логику в своем классе с методом get, чтобы вернуть String. Для создания EditText:

EditText edit = new EditText(); 

Затем добавить его к вашему мнению, или:

EditText edit = (EditText) findViewById(R.id.your_edit_text_id); 

Затем установите текст:

edit.setText(YOUR_STRING_HERE); 

Если вы пытаетесь установить EditText в то конкретную позицию в ListView, тогда вам нужно сделать обычай Adapter. В пределах класса адаптивного адаптера вам необходимо переопределить метод getView. С некоторой логикой вы можете отобразить либо EditText, либо TextView соответственно.

+0

Спасибо, я догадался об этом до сих пор, но EditText не должен отображаться с самого начала, но в тот момент, когда нажимается элемент. Поэтому он не должен быть видимым перед редактированием записи. Но если я создам новый EditText в XML, он будет показан по умолчанию. – jason

0

Вы можете использовать диалог с текстовым полем и использовать значение в действии положительной кнопки в слушателе и установить объект с новыми данными.

Надеюсь, у вас есть идея.

Смежные вопросы