我正在开发一个应用程序,用户可以在其中编辑ListView. 我想要一个EditTextListView 里面,这个 edittext 的行为应该像 TextView 但是当用户点击它时它应该看起来像EditText,我怎样才能实现这个功能?
实际上,ListView 中的 EditText 看起来很难看,我希望 EditText 默认看起来像 TextView,但是当用户尝试编辑数据时,它应该看起来像 EditText。
我希望我的问题很清楚,如果不是请问。
我正在开发一个应用程序,用户可以在其中编辑ListView. 我想要一个EditTextListView 里面,这个 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 提示用户输入。