Android中实现长按修改ListView对象的内容
作者:chaoyu168 时间:2022-04-13 15:09:08
实现的效果如下:
我在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>
来源:http://blog.csdn.net/chaoyu168/article/details/53943850
标签:android,listview,长按
0
投稿
猜你喜欢
详解Android Activity中的几种监听器和实现方式
2022-11-02 11:26:05
Android Studio设置或修改Android SDK路径方法
2023-11-07 17:22:10
Jenkins安装以及邮件配置详解
2023-04-20 12:42:39
java调用外部程序的方法及代码演示
2023-11-13 22:42:55
mybatis-plus使用generator实现逆向工程
2022-06-05 20:16:49
Android如何基于坐标对View进行模拟点击事件详解
2021-09-24 06:27:30
使用Spring Cloud Feign远程调用的方法示例
2021-12-06 10:30:09
Android优化之电量优化的实现
2023-08-20 07:57:25
Genymotion模拟器常见问题整理与相应解决方法
2021-11-11 20:36:15
Android多功能视频播放器GSYVideoPlayer开发流程
2021-07-21 07:35:05
Android性能优化之JVMTI与内存分配
2021-11-06 13:25:06
VSCODE+cmake配置C++开发环境的实现步骤
2023-05-31 21:25:14
Android scheme 跳转的设计与实现详解
2021-07-29 03:42:52
C# WinForm遍历窗体控件的3种方法
2022-02-01 16:58:17
java多线程编程学习(线程间通信)
2023-04-02 05:25:34
C#动态webservice调用接口
2023-10-18 07:22:00
Base64编码解码原理及C#编程实例
2022-05-07 03:58:53
Java 静态绑定与动态绑定深入分析
2021-06-19 05:31:04
linux系统 java环境变量的配置方法
2022-12-10 09:34:11
Android中Retrofit的简要介绍
2022-07-19 08:42:49