一、项目要求
1、请根据课程内容实现对Activity生命周期的理解,使用log展示生命周期的状态变化
2、点击列表会跳转到详情页面
3、实现最新的activityforresult功能,具体要求如下:新建一个新的activity2,在activity1上添加按钮可收到activity2的回传值
二、项目功能展示
在初始界面的基础上,针对朋友页的列表添加了点击跳转
三、项目具体实现方法
完成本次项目需求需要在门户界面的基础上新建两个activity,重写tab页的adpter。
1.布局文件包含两个activity.xml文件和一个item文件
item文件是recycleView的主题,决定了列表的主题展示界面
<?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"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="140dp"
android:layout_margin="8dp"
android:background="@android:color/darker_gray">
<ImageView
android:id="@+id/imageView"
android:layout_width="210dp"
android:layout_height="wrap_content"
android:layout_weight="1"
tools:srcCompat="@tools:sample/avatars" />
<LinearLayout
android:layout_width="300dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:gravity="right"
android:orientation="vertical">
<TextView
android:id="@+id/textView1"
android:layout_width="260dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:background="#FABB86FC"
android:gravity="center_horizontal"
android:text="TextView"
android:textSize="40sp" />
<TextView
android:id="@+id/textView2"
android:layout_width="260dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:background="#8692FC"
android:gravity="center_horizontal"
android:text="TextView"
android:textSize="26sp" />
<TextView
android:id="@+id/textView3"
android:layout_width="260dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:background="#BF86B1FC"
android:gravity="center_horizontal"
android:text="TextView"
android:textSize="26sp" />
</LinearLayout>
</LinearLayout>
2、adpter适配器在原本的基础上加上监听事件的功能
package com.example.myapplication;
import android.content.Context;
import android.content.Intent;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;
//import android.support.v7.widget.RecycleView;
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;
import java.util.List;
import java.util.Map;
public class MyAdapter extends RecyclerView.Adapter<MyAdapter.MyViewHolder> {
private View view;
private Context context;
private List<Map<String,Object>> data;
private Class[] jumpActivity={friendDetail1.class,
friendDetail2.class};
//构造
public MyAdapter(List<Map<String,Object>> data, Context context){
this.data=data;
this.context=context;
}
@NonNull
@Override
public MyViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
view= LayoutInflater.from(context).inflate(R.layout.item,parent,false);
MyViewHolder myViewHolder=new MyViewHolder(view);
return myViewHolder;
}
@Override
public void onBindViewHolder(@NonNull MyViewHolder holder, int position) {
final Map<String,Object> content = data.get(position);
holder.imageView.setImageResource((int)(data.get(position).get("照片")));
holder.textView1.setText(data.get(position).get("姓名").toString());
holder.textView2.setText(data.get(position).get("地区").toString());
holder.textView3.setText(data.get(position).get("年龄").toString());
holder.itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(context, "你点击的是:" + content, Toast.LENGTH_SHORT).show();
}
});
//设置item中的点击监听
int i = holder.getAdapterPosition();
holder.itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent=new Intent(context,jumpActivity[i]);
intent.putExtra("name", data.get(i).get("姓名").toString());
intent.putExtra("area", data.get(i).get("地区").toString());
intent.putExtra("age", data.get(i).get("年龄").toString());
context.startActivity(intent);
}
});
}
@Override
public int getItemCount() {
return data.size();
}
public class MyViewHolder extends RecyclerView.ViewHolder {
ImageView imageView;
TextView textView1,textView2,textView3;
public MyViewHolder(@NonNull View itemView) {
super(itemView);
imageView=itemView.findViewById(R.id.imageView);
textView1=itemView.findViewById(R.id.textView1);
textView2=itemView.findViewById(R.id.textView2);
textView3=itemView.findViewById(R.id.textView3);
}
}
}
4源码地址