1.MyAdapter
package com.example.myapplication;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;
import java.util.List;
public class MyAdapeter extends RecyclerView.Adapter<MyViewHolder>{
private List<UserAccount>userAccounts;
private Context mcontext;
public MyAdapeter(Context context, List<UserAccount>userAccounts){
mcontext=context;
this.userAccounts=userAccounts;
}
@NonNull
@Override
public MyViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View view = LayoutInflater.from(mcontext).inflate(R.layout.itemview,null);
MyViewHolder myViewHolder=new MyViewHolder(view);
return myViewHolder;
}
@Override
public void onBindViewHolder(@NonNull MyViewHolder myViewHolder, int i) {
((TextView)myViewHolder.findViewById(R.id.tv_username)).setText(userAccounts.get(i).getUsername());
((TextView)myViewHolder.findViewById(R.id.tv_password)).setText(userAccounts.get(i).getPassword());
}
@Override
public int getItemCount() {
return userAccounts.size();
}
}
2.MyViewHolder
package com.example.myapplication;
import android.view.View;
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;
public class MyViewHolder extends RecyclerView.ViewHolder {
private View mview;
public MyViewHolder(@NonNull View itemView) {
super(itemView);
mview=itemView;
}
public View findViewById(int id){
return mview.findViewById(id);
}
}
3.UserAccount
package com.example.myapplication;
public class UserAccount {
private String username;
private String password;
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
4.tab03.xml
<?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:orientation="vertical">
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/recyclerView2"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</LinearLayout>
5.top.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="65dp"
android:background="#DC143C"
android:gravity="center"
android:orientation="horizontal">
<TextView
android:id="@+id/textView2"
android:layout_width="300dp"
android:layout_height="60dp"
android:gravity="center"
android:text="@string/wechat"
android:textColor="#ffffff"
android:textSize="20sp" />
<ImageButton
android:id="@+id/add"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:background="#DC143C"
android:scaleType="centerInside"
android:src="@drawable/add2" />
</LinearLayout>
6.最后改一下contactFragment.java
package com.example.myapplication;
import android.content.DialogInterface;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.app.Fragment;
import android.widget.EditText;
import android.widget.ImageButton;
import android.widget.Toast;
import androidx.appcompat.app.AlertDialog;
import androidx.fragment.app.FragmentManager;
import androidx.recyclerview.widget.DividerItemDecoration;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import java.util.ArrayList;
import java.util.List;
/**
* A simple {@link Fragment} subclass.
*/
public class contactFragment extends Fragment {
private RecyclerView recyclerView; //定义ReclerView控件
private View view;//定义view来设置fragment中的layout
private List<UserAccount>userAccounts = new ArrayList<UserAccount>();
private MyAdapeter myadpater;
public contactFragment() {
// Required empty public constructor
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
view = inflater.inflate(R.layout.tab03,container,false);
initRecyclerView();
return view;
}
private void initRecyclerView() {
recyclerView = (RecyclerView)view.findViewById(R.id.recyclerView2);
myadpater = new MyAdapeter(getActivity(),userAccounts);
recyclerView.setAdapter(myadpater);
recyclerView.setLayoutManager(new LinearLayoutManager(getActivity(),LinearLayoutManager.VERTICAL,false));
recyclerView.addItemDecoration(new DividerItemDecoration(getActivity(),DividerItemDecoration.VERTICAL));
ImageButton add= (ImageButton)view.findViewById(R.id.add1);
add.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
;
View view1 = LayoutInflater.from(getActivity()).inflate(R.layout.dialogview, null, false);
final EditText edusername = view1.findViewById(R.id.ed_username);
final EditText edpassword = view1.findViewById(R.id.ed_password);
new AlertDialog.Builder(getActivity())
.setTitle("用户信息输入")
.setView(view1)
.setPositiveButton("添加", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
UserAccount userAccount = new UserAccount();
userAccount.setUsername(edusername.getText().toString().trim());
userAccount.setPassword(edpassword.getText().toString().trim());
userAccounts.add(userAccount);
myadpater.notifyDataSetChanged();
}
}).setNegativeButton("取消", null).show();
}
});
}
}
运行结果为:
实验代码:MyWechat.