Java 意图在Recycleview.onclicklistener中不起作用

Java 意图在Recycleview.onclicklistener中不起作用,java,android,android-studio,android-layout,android-fragments,Java,Android,Android Studio,Android Layout,Android Fragments,[这是错误图像 这是我的适配器类,我需要单击Recycleview列表并转到下一页,但此类中无法使用Intent应用程序崩溃我如何使用此类中的Intent 包com.onebook.locationsaver import android.app.Activity; import android.content.Context; import android.content.DialogInterface; import android.content.Intent; import andro

[这是错误图像

这是我的适配器类,我需要单击Recycleview列表并转到下一页,但此类中无法使用Intent应用程序崩溃我如何使用此类中的Intent

包com.onebook.locationsaver

import android.app.Activity;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.provider.ContactsContract;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.LinearLayout;
import android.widget.RelativeLayout;
import android.widget.TextView;
import android.widget.Toast;

import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;
import androidx.recyclerview.widget.RecyclerView.ViewHolder;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;


import static android.content.ContentValues.TAG;
import static androidx.core.content.ContextCompat.startActivity;


public class SaveListAdapter extends androidx.recyclerview.widget.RecyclerView.Adapter<SaveListAdapter.ViewHolder>  {
Context context;
    public List<DatabseMode> databasemodelist;
    private DatabseMode databseMode;
    ArrayList<DatabseMode> newlist =new ArrayList<>();
    Context a;



    public SaveListAdapter(Context context, List<DatabseMode> databasemodelist) {

        this.databasemodelist=databasemodelist;


        for (int i = databasemodelist.size() - 1; i >= 0; i--) {
            newlist.add(databasemodelist.get(i));
            this.a=context;
        }
    }

    @NonNull
    @Override
    public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
        LayoutInflater layoutInflater = LayoutInflater.from(parent.getContext());
        View listItem= layoutInflater.inflate(R.layout.recycle_view_icon, parent, false);
        ViewHolder VH=new ViewHolder(context,listItem) {
            @Override
            public String toString() {
                return super.toString();
            }
        };
        return VH;

    }


    @Override
    public void onBindViewHolder(@NonNull ViewHolder holder, final int position) {


        databseMode= (newlist.get(position));

        holder.name.setText(databseMode.getname());
        holder.detail.setText(databseMode.getdetail());

        /*holder.layout.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Toast.makeText(SaveListAdapter.this,"Item is selected",Toast.LENGTH_LONG).show();
*//*
                Intent intent=new Intent(a.getApplicationContext(),LocationEdit.class);
                intent.putExtra("potition",getItemId(position ));
                a.startActivity(intent);*//*

            }
        });*/
    }



    @Override
    public int getItemCount() {
        return databasemodelist.size();
    }


    public static class ViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener {

        public TextView name,detail;
        public LinearLayout layout;
        private Context context;
        List<DatabseMode> databasemodelist;

        public ViewHolder(Context context,View itemView) {
            super(itemView);
            this.name = (TextView) itemView.findViewById(R.id.textView);
            this.detail=itemView.findViewById(R.id.textview00);
            this.context=context;
            itemView.setOnClickListener(this);
            //layout= (LinearLayout) itemView;
        }



        @Override
        public void onClick(View v) {
            int position=getLayoutPosition();
            DatabseMode databseMode=databasemodelist.get(position);
            Intent intent=new Intent(context,LocationEdit.class);
            intent.putExtra("id",databseMode.getname());
            context.startActivity(intent);
            Toast.makeText(context,"this the text",Toast.LENGTH_SHORT).show();
        }
    }

}
导入android.app.Activity;
导入android.content.Context;
导入android.content.DialogInterface;
导入android.content.Intent;
导入android.provider.contacts合同;
导入android.util.Log;
导入android.view.LayoutInflater;
导入android.view.view;
导入android.view.ViewGroup;
导入android.widget.AdapterView;
导入android.widget.LinearLayout;
导入android.widget.RelativeLayout;
导入android.widget.TextView;
导入android.widget.Toast;
导入androidx.annotation.NonNull;
导入androidx.recyclerview.widget.recyclerview;
导入androidx.recyclerview.widget.recyclerview.ViewHolder;
导入java.util.ArrayList;
导入java.util.Collections;
导入java.util.List;
导入静态android.content.ContentValues.TAG;
导入静态androidx.core.content.ContextCompat.startActivity;
公共类SaveListAdapter扩展了androidx.recyclerview.widget.recyclerview.Adapter{
语境;
公共列表数据库建模师;
专用数据集模式数据集模式;
ArrayList newlist=新的ArrayList();
背景a;
公共SaveListAdapter(上下文上下文,列表databasemodelist){
this.databasemodelist=databasemodelist;
对于(int i=databasemodelist.size()-1;i>=0;i--){
add(databasemodelist.get(i));
a=上下文;
}
}
@非空
@凌驾
public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent,int viewType){
LayoutInflater LayoutInflater=LayoutInflater.from(parent.getContext());
View listItem=LayoutFlater.inflate(R.layout.recycle\u View\u图标,父项,false);
ViewHolder VH=新的ViewHolder(上下文,列表项){
@凌驾
公共字符串toString(){
返回super.toString();
}
};
返回VH;
}
@凌驾
public void onBindViewHolder(@NonNull ViewHolder,final int位置){
DataSeMode=(newlist.get(position));
holder.name.setText(datasemode.getname());
holder.detail.setText(datasemode.getdetail());
/*holder.layout.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
Toast.makeText(SaveListAdapter.this,“项目已选定”,Toast.LENGTH_LONG.show();
*//*
Intent Intent=新的Intent(a.getApplicationContext(),LocationEdit.class);
intent.putExtra(“药剂”,getItemId(位置));
a、 星触觉(意向)*//*
}
});*/
}
@凌驾
public int getItemCount(){
返回databasemodelist.size();
}
公共静态类ViewHolder扩展了RecyclerView.ViewHolder实现了View.OnClickListener{
公共文本视图名称、详细信息;
公共线路布局;
私人语境;
列表数据库建模师;
公共视图持有者(上下文、视图项视图){
超级(项目视图);
this.name=(TextView)itemView.findViewById(R.id.TextView);
this.detail=itemView.findviewbyd(R.id.textview00);
this.context=context;
setOnClickListener(这个);
//布局=(线性布局)项目视图;
}
@凌驾
公共void onClick(视图v){
int position=getLayoutPosition();
DataSeMode DataSeMode=databasemodelist.get(位置);
意向意向=新意向(上下文,LocationEdit.class);
intent.putExtra(“id”,datasemode.getname());
背景。开始触觉(意图);
Toast.makeText(上下文“this the text”,Toast.LENGTH_SHORT).show();
}
}
}
以上是recycleview的适配器

package com.onebook.locationsaver;

import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.view.View;
import android.widget.EditText;
import android.widget.LinearLayout;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;

import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;

import java.util.ArrayList;
import java.util.List;

public class LocationList extends AppCompatActivity {

    private RecyclerView recyclerViewsavedata;
    private RecyclerView.Adapter getdataadapter;
    private List<DatabseMode> databasemodelist;
    private DatabaseHelper databaseHelper ;
    ListView listView;
    private Context context;


    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.locationlist);



        databasemodelist =new ArrayList<>();
        databaseHelper =new DatabaseHelper(this);

        recyclerViewsavedata=findViewById(R.id.recyclerView);
        recyclerViewsavedata.setHasFixedSize(true);
        recyclerViewsavedata.setLayoutManager(new LinearLayoutManager(this));


        databasemodelist=databaseHelper.getAllCotacts();


        //listView.setAdapter(new Listviewadapter(LocationList.this,databasemodelist));
        getdataadapter=new SaveListAdapter((Activity) context,databasemodelist);
        recyclerViewsavedata.setAdapter(getdataadapter);
        recyclerViewsavedata.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

                Toast.makeText(LocationList.this,"This item is selecton",Toast.LENGTH_SHORT).show();
            }
        });
    }
}
package com.onebook.locationsaver;
导入android.app.Activity;
导入android.content.Context;
导入android.os.Bundle;
导入android.view.view;
导入android.widget.EditText;
导入android.widget.LinearLayout;
导入android.widget.ListView;
导入android.widget.TextView;
导入android.widget.Toast;
导入androidx.annotation.Nullable;
导入androidx.appcompat.app.appcompat活动;
导入androidx.recyclerview.widget.LinearLayoutManager;
导入androidx.recyclerview.widget.recyclerview;
导入java.util.ArrayList;
导入java.util.List;
公共类LocationList扩展了AppCompativeActivity{
私人RecyclerView recyclerViewsavedata;
私有RecyclerView.Adapter getdataadapter;
私有列表数据库建模师;
专用数据库助手数据库助手;
列表视图列表视图;
私人语境;
@凌驾
创建时受保护的void(@Nullable Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.locationlist);
databasemodelist=newArrayList();
databaseHelper=新的databaseHelper(此);
recyclerViewsavedata=findViewById(R.id.recyclerView);
recyclerViewsavedata.setHasFixedSize(true);
setLayoutManager(新的LinearLayoutManager(this));
databasemodelist=databaseHelper.getAllCotacts();
//setAdapter(新的Listviewadapter(LocationList.this,databasemodelist));
getdataadapter=new SaveListAdapter((活动)上下文,databasemodelist);
setAdapter(getdataadapter);
RecycleViewSaveData.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
Toast.makeText(LocationList.this,“此项为selecton”,Toast.LENGTH\u SHORT.show();
}
});
}
}
以上是Recycleview一级,请帮帮我,我为此奋斗了4天
public class LocationList extends AppCompatActivity {

private RecyclerView recyclerViewsavedata;
private SaveListAdapter getdataadapter;
private List<DatabseMode> databasemodelist = new ArrayList<>();
private DatabaseHelper databaseHelper;


@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.locationlist);

    recyclerViewsavedata = findViewById(R.id.recyclerView);
    recyclerViewsavedata.setHasFixedSize(true);
    recyclerViewsavedata.setLayoutManager(new LinearLayoutManager(this));

    databaseHelper = new DatabaseHelper(this);
    databasemodelist = databaseHelper.getAllCotacts();

    getdataadapter = new SaveListAdapter(LocationList.this, databasemodelist);
    recyclerViewsavedata.setAdapter(getdataadapter);
}}
public class SaveListAdapter extends androidx.recyclerview.widget.RecyclerView.Adapter<SaveListAdapter.ViewHolder>  {
private Context context;
private List<DatabseMode> databasemodelist;
private ArrayList<DatabseMode> newlist = new ArrayList<>();

public SaveListAdapter(Context context, List<DatabseMode> databasemodelist) {
    this.databasemodelist=databasemodelist;
    this.context = context;
    for (int i = databasemodelist.size() - 1; i >= 0; i--) {
        newlist.add(databasemodelist.get(i));
    }
}

@NonNull
@Override
public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
  return new SaveListAdapter.ViewHolder(LayoutInflater.from(parent.getContext()).inflate(R.layout.recycle_view_icon, parent, false));
}


@Override
public void onBindViewHolder(@NonNull ViewHolder holder, final int position) {
    DatabseMode databseMode = newlist.get(position);
    holder.name.setText(databseMode.getname());
    holder.detail.setText(databseMode.getdetail());

    holder.itemView.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Toast.makeText(context,"Item is selected",Toast.LENGTH_LONG).show();
            Intent intent=new Intent(context, LocationEdit.class);
            intent.putExtra("id",databseMode.getname());
            context.startActivity(intent);
        }
    });
}

@Override
public int getItemCount() {
    return databasemodelist.size();
}

public static class ViewHolder extends RecyclerView.ViewHolder {
    public TextView name;
    public TextView detail;

    public ViewHolder(Context context,View itemView) {
        super(itemView);
        name =  itemView.findViewById(R.id.textView);
        detail = itemView.findViewById(R.id.textview00);
    }
}}