我是developing an application,用户可以在ListView
中修改数据。我希望在ListView中有一个EditText
,这个edittext应该像TextView一样,但是当用户点击它时,它应该看起来像EditText
,我该如何实现这个功能?
实际上ListView中的EditText看起来很丑陋。我希望EditText看起来像TextView bydefault,但是当用户尝试编辑数据时,它应该看起来像EditText。
我希望我的问题很清楚,如果不是请问。
答案 0 :(得分: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);
}
}
答案 1 :(得分:0)
使用选择器进行EditText创建不同的状态。如果处于空闲状态,则将正常颜色绘制为背景,如果聚焦,则使用9补丁PNG drawable,类似于真正的EditText背景。
我希望它可以帮到你。如果您不知道如何使用选择器,请随时问我。
示例ScreenShots
我在我的应用中使用了1个TextVuew和2个EditText视图,请查看下面的屏幕截图以了解具体方法 EditText将根据您的要求显示。如果你喜欢它们并且它实际上是必需的,那么我在这里发布代码。
初始屏幕
在第一个EditText中输入
获取第二个EditText的输入
答案 2 :(得分:0)
好吧,我建议使用textview ..当点击它时,它将交换到父文件中的editText(添加View / removeView)。当焦点更改时,它将恢复为textview并进行新的更改。第二个解决方案使用弹出对话框进行编辑,使用完成按钮提交并返回以返回列表。用于改变editText样式的第三种解决方案:
editText.setBackgroundResource(R.layout.writemode);
//later after this item loses focus, use:
editText.setBackgroundResource(R.layout.readmode);
答案 3 :(得分:0)
您可以提示用户输入AlertDialog。
答案 4 :(得分:0)
使用setCursorVisible(false)隐藏光标并单击edittext setCursorVisible(true)。这样,还将背景颜色设置为edittext的白色
答案 5 :(得分:0)
android:cursorVisible="false"
android:background="@android:color/transparent"