Java 在RecyclerView中创建onClickListener
我试图在适配器上创建一个setListener,以便在应用程序上执行一些操作。但问题是当使用这行代码调用setClickListener时 当我使用这个时,它给了我这个错误 这是我的密码 用于RecyclerView的毕加索测试适配器Java 在RecyclerView中创建onClickListener,java,android,Java,Android,我试图在适配器上创建一个setListener,以便在应用程序上执行一些操作。但问题是当使用这行代码调用setClickListener时 当我使用这个时,它给了我这个错误 这是我的密码 用于RecyclerView的毕加索测试适配器 您需要创建一个如下代码所示的接口 interface ItemClickListener{ public void onItemClick(int position); } 您需要在HomeImagesFragment中实现ItemClickListe
您需要创建一个如下代码所示的接口
interface ItemClickListener{
public void onItemClick(int position);
}
您需要在HomeImagesFragment中实现ItemClickListener
示例代码
您需要创建一个如下代码所示的接口
interface ItemClickListener{
public void onItemClick(int position);
}
您需要在HomeImagesFragment中实现ItemClickListener
示例代码
如果使用Kotlin,另一种方法是: 示例代码 在适配器类毕加索测试中:
class Picassotest : RecyclerView.Adapter<Picassotest.ViewHolder>{
internal var itemClickListener: (Int) -> Unit = {}
inner class ViewHolder(itemView:View):RecyclerView.ViewHolder(itemView){
init{
itemView.setOnClickListener{
itemClickListener.invoke(adapterPosition)
}
}
}
}
如果使用Kotlin,另一种方法是: 示例代码 在适配器类毕加索测试中:
class Picassotest : RecyclerView.Adapter<Picassotest.ViewHolder>{
internal var itemClickListener: (Int) -> Unit = {}
inner class ViewHolder(itemView:View):RecyclerView.ViewHolder(itemView){
init{
itemView.setOnClickListener{
itemClickListener.invoke(adapterPosition)
}
}
}
}
共享您的项目ClickListenerinterface@NileshRathod我没有,这是我的全部code@NileshRathod我从这里下载代码共享您的ItemClickListenerinterface@NileshRathod我没有,这是我的全部code@NileshRathod我从这里开始编写代码非常感谢mutch:D,问题出在implements Picassotest.ItemClickListener中,我加上它,它是完美的工作,真的你救了我的命day@ededed很高兴帮助您非常感谢您M:D,问题出在implements PicassTest.ItemClickListener中,我添加了它,它工作得很好,您真的保存了我的day@ededed很高兴帮助你
interface ItemClickListener{
public void onItemClick(int position);
}
public class HomeImagesFragment extends Fragment implements ItemClickListener{
private Picassotest adapter;
String[] chooseImages;
public HomeImagesFragment(String[] chooseImages) {
this.chooseImages = chooseImages;
}
@Override
public void onItemClick(int position) {
// you will clikcked item position here
String image = chooseImages[position];
Intent intent = new Intent(getActivity(), PicassoImageDisplayWallpaperAdapter.class);
intent.putExtra("imageUrl", image);
getActivity().startActivity(intent);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
View rootView = inflater.inflate(R.layout.images_fragment_home, container, false);
/* ArrayList for chooseImages */
chooseImages = new String[]{
"https://quotess.cc/wp-content/uploads/2020/01/4688.jpg",
"https://whatt.cc/wp-content/uploads/2018/07/4443.jpg",
"https://quotess.cc/wp-content/uploads/2020/01/4688.jpg",
};
/* make new object and find the view "GridView" */
RecyclerView recyclerView = rootView.findViewById(R.id.recyclerview_image_choose);
// Calculate the items and auto-fit it on the screen
int mNoOfColumns = Utility.calculateNoOfColumns(getActivity(), 140);
recyclerView.setLayoutManager(new GridLayoutManager(getActivity(), mNoOfColumns));
adapter = new Picassotest(getActivity(), chooseImages);
adapter.setClickListener(this);
recyclerView.setAdapter(adapter);
return rootView;
}
public void onItemClick(int position) {
// get the image
String image = chooseImages[position];
Intent intent = new Intent(getActivity(), PicassoImageDisplayWallpaperAdapter.class);
intent.putExtra("imageUrl", image);
getActivity().startActivity(intent);
}
class Picassotest : RecyclerView.Adapter<Picassotest.ViewHolder>{
internal var itemClickListener: (Int) -> Unit = {}
inner class ViewHolder(itemView:View):RecyclerView.ViewHolder(itemView){
init{
itemView.setOnClickListener{
itemClickListener.invoke(adapterPosition)
}
}
}
}
class HomeImagesFragment{
adapter = new Picassotest(getActivity(), chooseImages)
adapter.itemClickListener = { position->
//TODO handle item on click here
}
}