功能要求
将recyclerView的每个item增加点击功能,点击后跳转到一个新的view展示信息。
开发技术
activity,xml,fragment,button,fragment,recycleview,adapter
设计过程
1.先创建跳转的xml文件,后续拉入LinearLayout,并且拉入TexView以及button。
2.对Adapter的java文件进行修改
public void onBindViewHolder(@NonNull myadapter.myholder holder, int position) {
String name=list1.get(position).get("my_name").toString();
String phone=list1.get(position).get("my_phone").toString();
String area=list1.get(position).get("my_area").toString();
holder.textView.setText(name);
holder.textView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent=new Intent(context1,Activity2.class);
intent.putExtra("details",name);
intent.putExtra("phone",phone);
intent.putExtra("area",area);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
//开始跳转
context1.startActivity(intent);
}
});
}
3.添加跳转页面的activity组件
添加显示跳转页面的activity2,在外定义button和textview后,再在oncreate中添加对应的连接,并将button返回界面设置为跳转前界面
Button button;
TextView name_details,textView1,textView2;
@SuppressLint({"ResourceType", "MissingInflatedId"})
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.details);
Intent intent=getIntent();
button=findViewById(R.id.button);
Log.d("xr","2:onCreate...");
name_details=findViewById(R.id.name);
name_details.setText(intent.getStringExtra("details"));
textView1=findViewById(R.id.phonenumber);
textView1.setText(intent.getStringExtra("phone"));
textView2=findViewById(R.id.area_detail);
textView2.setText(intent.getStringExtra("area"));
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent=new Intent();
intent.putExtra("results","888");
setResult(666,intent);
finish();
}
});
}
4.对Fragment1的java文件进行修改
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view;
view = inflater.inflate(R.layout.fragment_1, container, false);
recycleView=view.findViewById(R.id.RecyclerView);
String[] names = { "A", "B", "C", "D", "E", "F", "G","H","J"};
String[] phones = {"123456789", "1561684", "142562175",
"5438852433", "45378323", "1557247455",
"5445383524", "5432783854", "1785875424"};
String[] area = {"湖北 武汉", "湖北 武汉", "湖北 武汉", "湖北 武汉", "湖北 武汉", "湖北 武汉", "湖北 武汉", "湖北 武汉", "湖北 武汉"};
List<Map<String, Object>> items = new ArrayList<Map<String, Object>>();
for (int i = 0; i < names.length; i++) {
Map<String, Object> item = new HashMap<String, Object>();
item.put("my_name", names[i]);
item.put("my_phone", phones[i]);
item.put("my_area", area[i]);
items.add(item);
}
Context context = this.getContext();
adapter = new myadapter(context, items);
recycleView.setAdapter(adapter);
LinearLayoutManager manager = new LinearLayoutManager(context);
manager.setOrientation(RecyclerView.VERTICAL);
recycleView.setLayoutManager(manager);
return view;
}
结果展示:
点击A前:
点击A后:
点击返回后: