Android仿QQ好友列表分组实现增删改及持久化

2019-12-10 19:14:55于海丽

ModifyDialog.java

package com.eric.grouplistdemo; 
 
import android.app.Dialog; 
import android.content.Context; 
import android.view.LayoutInflater; 
import android.view.View; 
import android.widget.Button; 
import android.widget.EditText; 
import android.widget.TextView; 
public class ModifyDialog extends Dialog{ 
 private TextView text_title; 
 private EditText edit_modify; 
 private Button btn_commit; 
  
 public ModifyDialog(Context context, String title, String name) { 
  super(context, R.style.noTitleDialog); 
   
  View view = LayoutInflater.from(getContext()) 
    .inflate(R.layout.dialog_modify, null); 
  text_title = (TextView) view.findViewById(R.id.text_title); 
  edit_modify = (EditText)view.findViewById(R.id.edit_modify); 
  btn_commit = (Button) view.findViewById(R.id.btn_commit); 
  text_title.setText(title); 
  edit_modify.setText(name); 
   
  super.setContentView(view); 
 } 
  
 public EditText getEditText(){ 
  return edit_modify; 
 } 
  
 public void setOnClickCommitListener(View.OnClickListener listener){ 
  btn_commit.setOnClickListener(listener); 
 } 
} 

ModifyDialog自定义构造函数中,通过super()加载刚刚自定义的no_title_dialog.xml,声明View加载layout布局dialog_modify.xml;并且获取布局中的相应控件,将构造函数中传来的字符串title和name,分别赋值到标题文本和输入框控件中;最后调用setContentView()初始化对话框视图;
添加一个返回输入框控件的函数getEditText(),用于获取输入框输入的内容;

还需要一个自定义的点击事件监听器,绑定在确定按钮上; 

④准备工作都完成了,下面就实现GroupListFragment,包括数据的初始化及持久化保存,组项和子项的增删改操作,列表子项点击事件,列表组项和子项的长按事件;

fragment_group_list.xml 页面的布局文件ExpandableListView列表以及一个添加组图标;

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://www.easck.com/apk/res/android" 
 android:layout_width="match_parent" 
 android:layout_height="match_parent" 
 > 
 <ExpandableListView 
  android:id="@+id/expandablelistview" 
  android:layout_width="match_parent" 
  android:layout_height="match_parent" 
  android:groupIndicator="@null" 
  > 
 </ExpandableListView> 
 <ImageView 
  android:id="@+id/image_add" 
  android:layout_width="40dp" 
  android:layout_height="40dp" 
  android:layout_centerHorizontal="true" 
  android:layout_alignParentBottom="true" 
  android:src="@drawable/add"/> 
</RelativeLayout>