做了一个小功能 记录一下
本人做的是一个编辑框监听输入的东西然后调用接口查找数据,返回到第一个列表里边,然后点击长按左边列表子项,左边列表删除子项然后右边列表添加左边删除的,右边一样的道理,再次输入编辑框返回的数据如果右边页面上存在不显示左边列表上,再次进入如果本地有值右边列表显示数据。
我把左右两个列表长按删除和添加的方法分享给大家,接口添加值的我相信大家都会。
效果图
device-2024-06-09-192933
直接上代码先是三个布局 ,
主布局
java
<LinearLayout
android:layout_width="100dp"
android:layout_height="200dp"
android:layout_marginStart="20dp"
android:orientation="vertical">
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/RL1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center" />
</LinearLayout>
<LinearLayout
android:layout_width="100dp"
android:layout_height="200dp"
android:layout_marginStart="20dp"
android:orientation="vertical">
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/RL2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center" />
</LinearLayout>
两个列表子布局
java
<TextView
android:id="@+id/recycle_view_tv"
android:layout_width="match_parent"
android:layout_height="40dp"
android:textColor="@color/black"
android:gravity="center" />
java
<TextView
android:id="@+id/recycle_view_tv"
android:layout_width="match_parent"
android:layout_height="40dp"
android:textColor="@color/black"
android:gravity="center" />
CodeNameMap对象
java
public class CodeNameMap {
public String id;
public String name;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Override
public String toString() {
return "CodeName{" +
"id='" + id + '\'' +
", name='" + name + '\'' +
'}';
}
}
然后是实现代码
java
public class MainActivity extends AppCompatActivity {
RecyclerView mRL1;
RecyclerView mRL2;
//麻醉医师适配器
Adapter1 mAdapter1;
Adapter2 mAdapter2;
//创建接口返回集合
ArrayList<CodeNameMap> codeNameMaps1 = new ArrayList<>();
//存放保存的集合
ArrayList<CodeNameMap> codeNameMaps2 = new ArrayList<>();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
findView();
}
public void findView() {
mRL1 =findViewById(R.id.RL1);
mRL2 =findViewById(R.id.RL2);
CodeNameMap codeNameMap = new CodeNameMap();
codeNameMap.id="01";
codeNameMap.name="张三";
codeNameMaps1.add(codeNameMap);
CodeNameMap codeNameMap1 = new CodeNameMap();
codeNameMap1.id="02";
codeNameMap1.name="李四";
codeNameMaps1.add(codeNameMap1);
CodeNameMap codeNameMap2 = new CodeNameMap();
codeNameMap2.id="03";
codeNameMap2.name="王五";
codeNameMaps1.add(codeNameMap2);
LinearLayoutManager linearLayoutManager2 = new LinearLayoutManager(MainActivity.this);
mRL1.setLayoutManager(linearLayoutManager2);
mAdapter1 = new Adapter1(codeNameMaps1);
mRL1.setAdapter(mAdapter1);
LinearLayoutManager linearLayoutManager3 = new LinearLayoutManager(MainActivity.this);
mRL2.setLayoutManager(linearLayoutManager3);
mAdapter2 = new Adapter2(codeNameMaps2);
mRL2.setAdapter(mAdapter2);
mAdapter1.setRemoveOnCallBack(new Adapter1.ReMoveOnCallBack() {
@Override
public void onRemove(CodeNameMap codeNameMap) {
codeNameMaps1.remove(codeNameMap);
codeNameMaps2.add(codeNameMap);
mRL2.setAdapter(mAdapter2);
mAdapter2.notifyDataSetChanged();
}
});
mAdapter2.setRemoveOnCallBack(new Adapter2.ReMoveOnCallBack() {
@Override
public void onRemove(CodeNameMap codeNameMap) {
codeNameMaps2.remove(codeNameMap);
codeNameMaps1.add(codeNameMap);
mRL1.setAdapter(mAdapter1);
mAdapter1.notifyDataSetChanged();
}
});
}
}