I am developing an application where the user can edit the data in the ListView
. I want to have an EditText
inside that ListView, this edittext should behave like TextView but when the user clicks it it should look like EditText
, How can i achieve this functionality?
Actually the EditText inside the ListView looks ugly & i want that the EditText should look like a TextView bydefault but when the user try to Edit the data then it should look like the EditText.
I hope that my question is clear if not please ask.
The below files I used in my app.
main.xml in layout folder
<?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 in drawable folder
<?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 in drawable folder
<?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 file
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);
}
}