Я хочу преобразовать TextView в Edit Text и наоборот в событие нажатия кнопки в android. Я не знаю, как это сделать, пожалуйста, помогите, если кто-нибудь знает решение.
С уважением, Rajapandian.K
Я хочу преобразовать TextView в Edit Text и наоборот в событие нажатия кнопки в android. Я не знаю, как это сделать, пожалуйста, помогите, если кто-нибудь знает решение.
С уважением, Rajapandian.K
Лучше всего использовать 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
change вы можете просто поменять фоны на основе того, что вы хотите увидеть в любой момент. Я попытаюсь реализовать его и посмотреть, будет ли он работать
Я думаю, что лучше всего использовать концепцию 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"/>