OnItemClickListener() 用于列表视图的每个项目中的微调器

Posted

技术标签:

【中文标题】OnItemClickListener() 用于列表视图的每个项目中的微调器【英文标题】:OnItemClickListener() for spinners in each item of a list view 【发布时间】:2019-09-21 11:46:45 【问题描述】:

我有一个带有自己的自定义适配器的列表视图,并且我在该列表视图的每个项目中都放置了一个微调器,但问题是,这些项目是由用户添加的,所以我不知道当他如何捕捉它时在微调器中进行选择。

PS。我在该列表视图的每个项目中都放置了一个微调器,但我不知道如何在这些内部微调器中收听选择。

那么我是把 onIitemClickListener 放在自定义适配器的 GetView() 中还是放在 MainActivity() 的 onCreate 函数中?

微调器确实有一个 id,但由于我使用的是自定义列表视图,因此每个微调器几乎都具有相同的 id,除非我在 GetView() 中指定列表视图的项目,但即便如此可以在 getView() 中放置一个监听器并让它 24/7 运行吗?

提前致谢!

【问题讨论】:

您能分享一下您用于旋转器的代码吗? 你是什么意思,微调器没有代码我使用设计将它们放在 .xml 中,我只是从 getView() 调用它们的 id @Appafly 我在哪里可以找到它的代码 请检查我的回答,如果有帮助请告诉我 【参考方案1】:

您应该使用 GetView() 在 OnCreate() 方法中添加 OnItemClickListener。只要您正确使用 GetView(),您就不需要 id。如果您愿意,还可以使用 OnItemSelectedListener。你可以通过here了解更多。

希望这会有所帮助!

【讨论】:

我不明白如何使用 getView() 将代码插入 onCreate()【参考方案2】:

首先我建议你使用 Recyclerview,你可以用这个从微调器中选择项目

public class TestSpinnerInListView extends RecyclerView.Adapter<TestSpinnerInListView.TestSpinnerHolder> 


@NonNull
@Override
public TestSpinnerHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) 
    return new TestSpinnerHolder(LayoutInflater.from(parent.getContext()).inflate(R.layout.item_test,parent, false));


@Override
public void onBindViewHolder(@NonNull TestSpinnerHolder holder, int position) 
    holder.spTest.setOnItemClickListener(new AdapterView.OnItemClickListener() 
        @Override
        public void onItemClick(AdapterView<?> parent, View view, int position, long id) 
            //Do something
            holder.tvTest.setText((String) parent.getItemAtPosition(position));
        
    );


@Override
public int getItemCount() 
    return 3;


class TestSpinnerHolder extends RecyclerView.ViewHolder

    public TextView tvTest;
    public Spinner spTest;
    public TestSpinnerHolder(@NonNull View itemView) 
        super(itemView);
        tvTest = itemView.findViewById(R.id.tvTest);
        spTest = itemView.findViewById(R.id.sptest);

    

【讨论】:

以上是关于OnItemClickListener() 用于列表视图的每个项目中的微调器的主要内容,如果未能解决你的问题,请参考以下文章

从 onItemClickListener 中的 JSON 对象获取 id

如何在 OnItemClickListener 中应用通知?

如何为 RecyclerView 设置 onItemClickListener? [复制]

OnItemClickListener 为 ListView 使用 ArrayAdapter

获取 Android Studio 中 onItemClickListener 中每一行的 id

执行长按时如何防止 OnItemClickListener 工作?