我正在开发一个应用程序,用户可以在其中编辑ListView
. 我想要一个EditText
ListView 里面,这个 edittext 的行为应该像 TextView 但是当用户点击它时它应该看起来像EditText
,我怎样才能实现这个功能?
实际上,ListView 中的 EditText 看起来很难看,我希望 EditText 默认看起来像 TextView,但是当用户尝试编辑数据时,它应该看起来像 EditText。
我希望我的问题很清楚,如果不是请问。
我正在开发一个应用程序,用户可以在其中编辑ListView
. 我想要一个EditText
ListView 里面,这个 edittext 的行为应该像 TextView 但是当用户点击它时它应该看起来像EditText
,我怎样才能实现这个功能?
实际上,ListView 中的 EditText 看起来很难看,我希望 EditText 默认看起来像 TextView,但是当用户尝试编辑数据时,它应该看起来像 EditText。
我希望我的问题很清楚,如果不是请问。
我在我的应用程序中使用的以下文件。
布局文件夹中的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);
}
}
使用EditText 的选择器来创建不同的状态。如果它处于空闲状态,则将普通颜色的可绘制对象作为背景,如果聚焦,则使用类似于真实 EditText 背景的 9 补丁 PNG 可绘制对象。
我希望它可以帮助你。如果您不知道如何使用选择器,请随时问我。
示例截图
我在我的应用程序中使用了 1 个 TextVuew 和 2 个 EditText 视图,请查看下面的屏幕截图以了解 EditText 根据您的要求的外观。如果您喜欢它们并且实际上是必需的,那么我在这里发布代码。
初始屏幕
在为第一个 EditText 输入时
在为第二个 EditText 输入时
好吧,我建议使用 textview .. 当单击它时,它将切换到父级中的 editText(add View /removeView ) .. 当焦点发生变化时,它将恢复到 textview 并进行新的更改.. 使用弹出窗口的第二种解决方案用于编辑目的的对话框,使用完成按钮提交并返回以返回列表。改变editText风格的第三个解决方案:
editText.setBackgroundResource(R.layout.writemode);
//later after this item loses focus, use:
editText.setBackgroundResource(R.layout.readmode);
使用 setCursorVisible(false) 隐藏光标和点击edittext setCursorVisible(true)。这个,也将背景颜色设置为edittext的白色
android:cursorVisible="false"
android:background="@android:color/transparent"
您可以使用 AlertDialog 提示用户输入。