EditText, который выглядит как TextView внутри ListView

1

Я разрабатываю приложение, в котором пользователь может редактировать данные в ListView. Я хочу иметь EditText внутри этого ListView, этот edittext должен вести себя как TextView, но когда пользователь нажимает на него, он должен выглядеть как EditText, Как я могу достичь этой функции?

На самом деле EditText внутри ListView выглядит уродливым, и я хочу, чтобы EditText выглядел как текстовый файл, но когда пользователь пытается отредактировать данные, он должен выглядеть как EditText.

Я надеюсь, что мой вопрос ясен, если не спросите.

  • 0
    Проверьте скриншоты моего приложения, вы ищете этот тип вывода?
  • 0
    проверить новый ответ с кодом
Показать ещё 1 комментарий
Теги:
android-edittext
textview
inline-editing
android-listview

6 ответов

1
Лучший ответ

Ниже файлы, которые я использовал в своем приложении.

main.xml в папке макета

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"    
    android:orientation="vertical" >
    <TextView
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="@string/hello" />
    <EditText android:layout_width="fill_parent"
        android:padding="5dip"
        android:layout_height="wrap_content"
        android:textColor="#00f"
        android:textSize="20dip"
        android:background="@drawable/bg" />    
    <EditText android:layout_width="fill_parent"
        android:padding="5dip"
        android:layout_height="wrap_content"
        android:textColor="#00f"
        android:textSize="20dip"
        android:background="@drawable/bg" />
</LinearLayout>

myshape.xml в папке с возможностью переноса

<?xml version="1.0" encoding="UTF-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">   
    <solid   android:color="#fff"/> 
    <corners android:radius="2dip" />   
    <stroke android:width="2dip"
        android:color="#ff4500" />
</shape>

bg.xml в папке с возможностью переноса

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android" >    
    <item android:state_enabled="true"        
        android:state_focused="true"                        
        android:drawable="@drawable/myshape"/>    
</selector>

Файл Java

public class EditTextSelector extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
    }
}
0
android:cursorVisible="false"
android:background="@android:color/transparent"
0

Используйте setCursorVisible (false), чтобы скрыть курсор и щелкнуть edittext setCursorVisible (true). это, также установите цвет фона в белый цвет edittext

0

ну, я бы рекомендовал использовать textview.. и при нажатии на него он будет меняться на editText (добавить View/removeView) в parent.. и при изменении фокуса он вернется обратно в textview с новыми изменениями. Второе решение для использования всплывающих окон диалог для редактирования с помощью кнопки "Готово" для отправки и возврата, чтобы вернуться к списку. третье решение изменить стиль editText с помощью:

editText.setBackgroundResource(R.layout.writemode);
//later after this item loses focus, use:
editText.setBackgroundResource(R.layout.readmode);
0

Используйте селектор для EditText для создания разных состояний. Если он находится в режиме ожидания, он дает нормальный цвет в качестве фона, и если он сфокусирован, используйте 9 патчей PNG, которые могут быть похожи на реальный фон EditText.

Надеюсь, это может вам помочь. Если вы не знаете, как использовать селектор, не стесняйтесь спрашивать меня.

Примеры скриншотов

Я использую 1 TextVuew и 2 вида EditText в своем приложении, проверяйте снимки экрана, чтобы узнать, как выглядит EditText в соответствии с вашими требованиями. Если вам нравятся, и на самом деле это необходимо, я отправляю код здесь.

Начальный экран

Изображение 174551

Принимая ввод для 1-го EditText

Изображение 174551

Принимая вход для второго EditText

Изображение 174551

  • 0
    Я очень новичок в Android, если вы можете направить меня, как это сделать? это будет так мило с вашей стороны.
  • 0
    Можете ли вы поделиться кодом со мной?
Показать ещё 2 комментария
0

Вы можете запросить пользователя для ввода с помощью AlertDialog.

  • 0
    Благодарю. но требование клиента - встроенное редактирование.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню