Android中实现长按修改ListView对象的内容
程序员文章站
2023-12-16 16:54:28
实现的效果如下:
我在listview的item长按事件内打开一个弹出窗口,窗口内有一个edittext对象,在这个编辑框内输入文本点确定后,直接修改掉listview对...
实现的效果如下:
我在listview的item长按事件内打开一个弹出窗口,窗口内有一个edittext对象,在这个编辑框内输入文本点确定后,直接修改掉listview对象内某个textview对象的内容。
示例代码如下:
import android.os.bundle; import android.app.activity; import android.app.alertdialog; import android.graphics.color; import android.view.layoutinflater; import android.view.view; import android.view.view.onclicklistener; import android.widget.adapterview; import android.widget.adapterview.onitemlongclicklistener; import android.widget.arrayadapter; import android.widget.button; import android.widget.edittext; import android.widget.listview; import android.widget.textview; public class mainactivity extends activity { private listview lvshow; private alertdialog dialog; @override protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_main); lvshow = (listview) findviewbyid(r.id.lvshow); string[] arr = { "李四", "小猪", "店小二" }; arrayadapter<string> adap1 = new arrayadapter<string>(this, r.layout.test_list, arr); lvshow.setadapter(adap1);// 设置listview的显示 lvshow.setonitemlongclicklistener(new onitemlongclicklistener() { @override public boolean onitemlongclick(adapterview<?> parent, view view, int position, long id) { setalertdialog(view); dialog.show(); return false; } }); } private void setalertdialog(final view view) { layoutinflater factory = layoutinflater.from(getapplicationcontext()); // 引入一个外部布局 view contview = factory.inflate(r.layout.test_dialog, null); contview.setbackgroundcolor(color.black);// 设置该外部布局的背景 final edittext edit = (edittext) contview .findviewbyid(r.id.edit_dialog);// 找到该外部布局对应的edittext控件 button btok = (button) contview.findviewbyid(r.id.btok_dialog); btok.setonclicklistener(new onclicklistener() {// 设置按钮的点击事件 @override public void onclick(view v) { ((textview) view).settext(edit.gettext().tostring()); dialog.dismiss(); } }); dialog = new alertdialog.builder(mainactivity.this).setview(contview) .create(); } }
<relativelayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingbottom="@dimen/activity_vertical_margin" android:paddingleft="@dimen/activity_horizontal_margin" android:paddingright="@dimen/activity_horizontal_margin" android:paddingtop="@dimen/activity_vertical_margin" tools:context=".mainactivity" > <listview android:id="@+id/lvshow" android:layout_width="match_parent" android:layout_height="wrap_content" />
<?xml version="1.0" encoding="utf-8"?> <linearlayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:gravity="center_horizontal" android:orientation="vertical" > <edittext android:id="@+id/edit_dialog" android:layout_width="match_parent" android:layout_height="wrap_content" android:textsize="28sp" /> <button android:id="@+id/btok_dialog" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="确定" /> </linearlayout>
总结
以上就是这篇文章的全部内容了,希望本文的内容对各位android开发者们能带来一定的帮助,如果有疑问大家可以留言交流。
推荐阅读
-
Android中实现长按修改ListView对象的内容
-
android编程实现添加文本内容到sqlite表中的方法
-
Android ListView中headerview的动态显示和隐藏的实现方法
-
Android中利用C++处理Bitmap对象的实现方法
-
Android中ListView下拉刷新的实现代码
-
Android中ListView下拉刷新的实现方法实例分析
-
android编程实现添加文本内容到sqlite表中的方法
-
Android 中通过ViewDragHelper实现ListView的Item的侧拉划出效果
-
Android ListView中headerview的动态显示和隐藏的实现方法
-
Android中利用C++处理Bitmap对象的实现方法