对recycleview实现跳转

126 阅读1分钟

对activity代码:

import android.content.Context;
import android.content.Intent;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.view.MenuItem;
import android.view.View;
import android.widget.AdapterView;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ListView;
import android.widget.SimpleAdapter;
import android.widget.TextView;
import com.example.uilayout.model.Msg;
import com.example.uilayout.adapter.MsgListAdapter;
import com.example.uilayout.R;
import com.example.uilayout.utils.MySQLiteOpenHelper;
import java.util.ArrayList;
import java.util.List;
public class MsgListActivity extends AppCompatActivity {
    RecyclerView rv;
    List<Msg> msgList = new ArrayList<>();
//    TextView friend;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_msglist);
        rv = findViewById(R.id.rv);
//        friend =findViewById(R.id.tv_friend);
        //给rv设置线性布局
        rv.setLayoutManager(new LinearLayoutManager(this));
        //初始化List集合数据
//        initList(msgList);
        initListFromDB();
        //给rv设置适配器
        rv.setAdapter(new MsgListAdapter(msgList));
//        MySQLiteOpenHelper helper=new MySQLiteOpenHelper(this,"wechat",null,1);
//        SQLiteDatabase db=helper.getWritableDatabase();
 
    }
 
    public void initListFromDB() {
        MySQLiteOpenHelper helper = new MySQLiteOpenHelper(this, "wechat", null, 1);
        SQLiteDatabase db = helper.getWritableDatabase();
        Cursor cursor = db.query("msg", null, null, null, null, null, null);
        while (cursor.moveToNext()) {
            int headImageSrc = cursor.getInt(cursor.getColumnIndex("headImageSrc"));
            String friend = cursor.getString(cursor.getColumnIndex("friend"));
            String message = cursor.getString(cursor.getColumnIndex("message"));
            String time = cursor.getString(cursor.getColumnIndex("time"));
            Msg msg = new Msg(headImageSrc, friend, message, time);
            msgList.add(msg);
        }
    }
}
 

布局文件:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:padding="10dp"
    android:descendantFocusability="blocksDescendants"
    >
    <ImageView
        android:id="@+id/iv_head"
        android:layout_width="60dp"
        android:layout_height="60dp"
        android:src="@drawable/a"
        android:layout_marginTop="5dp"
        android:layout_marginLeft="10dp"
        android:onClick="click"
        />
    <TextView
        android:id="@+id/tv_friend"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="小张"
        android:textSize="20sp"
        android:textColor="#000"
        android:layout_toRightOf="@+id/iv_head"
        android:layout_marginLeft="10dp"
        android:layout_marginTop="10dp"
        android:onClick="click"
        />
    <TextView
        android:id="@+id/tv_message"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="你在干嘛"
        android:textSize="15sp"
        android:lines="1"
        android:layout_alignLeft="@+id/tv_friend"
        android:layout_marginTop="40dp"
        android:onClick="click"
        />
    <TextView
        android:id="@+id/tv_time"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="21:00"
        android:textSize="15sp"
        android:layout_alignTop="@+id/tv_friend"
        android:layout_alignParentRight="true"
        android:layout_marginRight="10dp"
        android:onClick="click"
        />
    <View
        android:layout_width="match_parent"
        android:layout_height="1dp"
        android:background="#C0C0C0"
        android:layout_alignLeft="@+id/iv_head"
        android:layout_alignRight="@+id/tv_time"
        android:layout_marginTop="74dp"
        />
 
</RelativeLayout>

要设置adapter的监听页面:

        void onItemOnClick(View view,int position);
        void onItemLongOnClick(View view ,int position);
    }
    private OnItemOnClickListener mOnItemOnClickListener;
    //供外部来设置监听
    public void setOnItemOnClickListener(OnItemOnClickListener listener){
        this.mOnItemOnClickListener = listener;
    }

QQ图片20211026124259.jpg

QQ图片20211026124306.jpg