欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

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开发者们能带来一定的帮助,如果有疑问大家可以留言交流。

上一篇:

下一篇: