相关疑难解决方法(0)

RecyclerView onClick

有没有人使用RecyclerView找到一种方法来设置一个onClickListener项目RecyclerView?我想为每个项目的每个布局设置一个监听器,但这似乎有点太麻烦我确信有一种方法RecyclerView可以听取这个onClick事件,但我无法弄明白.

android onclick onclicklistener android-recyclerview

544
推荐指数
24
解决办法
54万
查看次数

RecyclerView Adapter中静态和非静态视图的区别是什么?

这种方法的优点是什么(在我的类MyAdapter中使用静态嵌套类扩展了RecyclerView.Adapter):

static class MyVH extends RecyclerView.ViewHolder {...}
Run Code Online (Sandbox Code Playgroud)

而这种方法(使用成员内部类):

  class MyVH extends RecyclerView.ViewHolder {...}
Run Code Online (Sandbox Code Playgroud)

或者它不会影响性能,可以使用这两种方法吗?

static android android-viewholder android-recyclerview

63
推荐指数
2
解决办法
1万
查看次数

如何根据类别实现带有节头的RecyclerView?

我想在列表中实现部分.我有一份任务清单.List有一个自定义适配器,它扩展了recyclerview刷卡适配器,因为我已经实现了向recyclerview的滑动手势.

因此,现在任务列表与已完成和待处理任务一起显示.每个列表项都有一个复选框,显示任务已完成或待处理.

如果选中复选框,则任务完成,反之亦然.现在我想用标题创建两个部分.一个用于已完成的任务,另一个用于待处理任

所以完成的任务应该显示在已完成的部分内,反之亦然.此外,如果任务未经检查,即待处理,如果用户选中复选框,则该项目应从待处理部分中删除,并应添加到已完成的部分,反之亦然.

我检查了一个库的部分.

https://github.com/afollestad/sectioned-recyclerview

但是当我尝试实现库时,我得到了错误,即适配器无法扩展两个类,因为之前我已经扩展了recyclerview swipe库.

适配器:

    public class IAdapter extends RecyclerSwipeAdapter<IAdapter.ItemViewHolder> {

    public ArrayList<Task> items;
    Context conext;
    public int _mId;

    List<Task> itemsPendingRemoval = new ArrayList<>();

    public IAdapter(Context context, ArrayList<Task> item) {
        this.conext=context;
       this.items=item;
    }


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

    }

    public static class ItemViewHolder extends RecyclerView.ViewHolder {
        Task task;
        CheckBox cb;
        SwipeLayout swipeLayout;
        TaskTableHelper taskTableHelper;
        ItemViewHolder(final View itemView) {
            super(itemView);

            taskTableHelper= new TaskTableHelper(itemView.getContext());
            swipeLayout = (SwipeLayout) itemView.findViewById(R.id.swipe);
            cb = (CheckBox) itemView.findViewById(R.id.checkbox);

        }
    }

    @Override
    public …
Run Code Online (Sandbox Code Playgroud)

java android header sections android-recyclerview

13
推荐指数
2
解决办法
3万
查看次数

如何将点击侦听器添加到我的回收站视图(Android Kotlin)

我有一个包含2个元素的回收器视图。我想添加2个按钮以执行不同的操作(取决于回收器视图的哪个元素。如何做到这一点?我的元素是textviews

SettingsActiv.kt

class SettingsActiv : AppCompatActivity() {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_settings)

        val arrow_backBtn = findViewById(R.id.settingsToolbarBtn) as Button
        arrow_backBtn.setOnClickListener{
            startActivity(Intent(this, MainActivity::class.java))
        }

        val linearLayout  = findViewById(R.id.constr) as LinearLayout
        val recyclerView =  RecyclerView(this)
        val series = ArrayList<SeriesModel>()
        recyclerView.layoutParams = LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT)
        series.add(SeriesModel("Unit of length","Meter"))
        series.add(SeriesModel("Unit of temperature","Celcius"))
        val adapter = MyAdapter(series)
        recyclerView.setHasFixedSize(true)
        recyclerView.layoutManager = LinearLayoutManager(this, LinearLayout.VERTICAL, false)
        recyclerView.adapter = adapter
        linearLayout.addView(recyclerView,1)
}
Run Code Online (Sandbox Code Playgroud)

MyAdapter.kt

class MyAdapter(private val seriesList: ArrayList<SeriesModel>) : RecyclerView.Adapter<MyAdapter.MyViewHolder>() {


    override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): MyAdapter.MyViewHolder { …
Run Code Online (Sandbox Code Playgroud)

android button kotlin android-recyclerview

5
推荐指数
1
解决办法
3117
查看次数

在 kotlin 中如何为 recyclerview 适配器设置点击事件

我是 kotlin android 的新手。我已经为 recyclerview 创建了适配器。但我无法为每个 recyclerview 项目执行点击事件。我需要参考代码的解释。请帮助我做到这一点。提前致谢。这是我的代码供您参考。

  class CustomAdapter(val readerList: ReaderResponse, mainActivity: 
    MainActivity,val btnlistener: BtnClickListener) : 
    RecyclerView.Adapter<CustomAdapter.ViewHolder>() {


    companion object {
        var mClickListener: BtnClickListener? = null
    }

    override fun onCreateViewHolder(viewgroup: ViewGroup, index: Int): ViewHolder 
    {

        val view=LayoutInflater.from(viewgroup?.context).inflate(R.layout.reader_list,viewgroup,false)
        return ViewHolder(view)
    }

    override fun getItemCount(): Int {
        return readerList.results.size

    }

    override fun onBindViewHolder(holder: ViewHolder, position: Int) {

        mClickListener = btnlistener
        val item = readerList

        val reader:ReaderData = readerList.results[position]
        /*p0?.imageview?.text=reader.readerIcon*/
        holder?.reader_status?.text=reader.readerStatus
        holder?.ward_name?.text=reader.wardName
        holder?.reader_id?.text=reader.readerID
        holder?.reader_name?.text=reader.readerName
        holder?.reader_location?.text=reader.readerLocation


        if (reader.readerStatus.toLowerCase().equals("yes")){
            holder.reader_name.setTextColor(Color.parseColor("#24a314"))
        }else if (reader.readerStatus.toLowerCase().equals("no")){

            holder.reader_name.setTextColor(Color.parseColor("#f4312d")) …
Run Code Online (Sandbox Code Playgroud)

android mvvm kotlin android-recyclerview

2
推荐指数
1
解决办法
5275
查看次数