Как преобразовать TextView в EditText в android?

Я хочу преобразовать TextView в Edit Text и наоборот в событие нажатия кнопки в android. Я не знаю, как добиться этого, пожалуйста, помогите, если кто-нибудь знает решение.

С уважением, Rajapandian.K

Solutions Collecting From Web of "Как преобразовать TextView в EditText в android?"

Лучше всего использовать ViewSwitcher

... <ViewSwitcher xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/my_switcher" android:layout_width="match_parent" android:layout_height="match_parent" > <TextView android:id="@+id/clickable_text_view" android:clickable="true" android:onClick="TextViewClicked" android:text="@string/some_value" /> <EditText android:id="@+id/hidden_edit_view" android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="@string/some_value" /> </ViewSwitcher> ... 

Затем вы можете переключать

 public void TextViewClicked() { ViewSwitcher switcher = (ViewSwitcher) findViewById(R.id.my_switcher); switcher.showNext(); //or switcher.showPrevious(); TextView myTV = (TextView) switcher.findViewById(R.id.clickable_text_view); myTV.setText("value"); } 

Может быть, вы можете иметь один из них и переключать их видимость. Когда кнопка нажата, возьмите текст видимого, примените его к невидимому, а затем поменяйте видимость.

Вы можете иметь как в своем макете, так и всегда показывать только один из них. Когда значение EditText изменяется, обновите скрытый TextView, чтобы синхронизировать их.

Я никогда не пробовал, но вы можете (возможно) использовать EditText и установить фон в TextView. Затем onfocus изменении onfocus вы можете просто обменивать фоны на основе того, что вы хотите увидеть в любой момент. Я попытаюсь реализовать его и посмотреть, будет ли он работать

Я считаю, что лучше всего использовать концепцию Framelayout.

Такой внешний вид выглядит так:

 <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content"> . . . </Linearlayout> 

Поместите его внутри Framelayout следующим образом.

 <FrameLayout android:layout_width="match_parent" android:layout_height="wrap_content"> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content"> . . . </Linearlayout> <!-- The Magic is here --> <View android:layout_width="match_parent" android:layout_height="match_parent" /> </FrameLayout> 

Здесь LinearLayout будет хранить весь ваш EditText View. Также не забудьте сделать фон EditText View null.

Как это

 <EditText android:layout_width="fill_parent" android:layout_height="50dp" android:id="@+id/editInp" android:hint="@string/hello_world" android:background="@null" android:singleLine="true" android:inputType="textCapWords"/> 

или

 <EditText android:layout_width="fill_parent" android:layout_height="50dp" android:id="@+id/editInp" android:hint="@string/hello_world" android:background="@android:drawable/transparent" android:singleLine="true" android:inputType="textCapWords"/>