Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/234.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 列表视图中每个项目的微调器的OnItemClickListener()_Android_Listview_Listener_Spinner_Custom Adapter - Fatal编程技术网

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

Android 列表视图中每个项目的微调器的OnItemClickListener(),android,listview,listener,spinner,custom-adapter,Android,Listview,Listener,Spinner,Custom Adapter,我有一个带有自定义适配器的列表视图,我在该列表视图的每个项目中都放置了一个微调器,但问题是,这些项目是由用户添加的,所以当用户在微调器中进行选择时,我不知道如何捕捉它 另外,我在列表视图的每个项目中都放置了一个微调器,但我不知道如何在这些内部微调器中侦听选择 那么,我应该将OnItemClickListener放在自定义适配器的GetView()中,还是放在MainActivity()的onCreate函数中 微调器确实有一个id,但由于我使用的是自定义列表视图,每个微调器几乎都有相同的id,除

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

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

那么,我应该将OnItemClickListener放在自定义适配器的GetView()中,还是放在MainActivity()的onCreate函数中

微调器确实有一个id,但由于我使用的是自定义列表视图,每个微调器几乎都有相同的id,除非我在GetView()中指定列表视图的项,但即使这样,是否可以在GetView()中放置一个侦听器并使其全天候运行


提前谢谢

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


希望这有帮助

首先,我建议您使用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);

    }
}
公共类TestSpinnerInListView扩展了RecyclerView.Adapter{
@非空
@凌驾
公共TestSpinnerHolder onCreateViewHolder(@NonNull ViewGroup父级,int viewType){
返回新的TestSpinnerHolder(LayoutInflater.from(parent.getContext())。充气(R.layout.item_test,parent,false));
}
@凌驾
public void onBindViewHolder(@NonNull TestSpinnerHolder,int位置){
holder.spTest.setOnItemClickListener(新的AdapterView.OnItemClickListener(){
@凌驾
public void onItemClick(AdapterView父对象、视图、整型位置、长id){
//做点什么
holder.tvTest.setText((字符串)parent.getItemAtPosition(位置));
}
});
}
@凌驾
public int getItemCount(){
返回3;
}
类TestSpinnerHolder扩展了RecyclerView.ViewHolder{
公共文本视图测试;
公共旋转试验;
公共TestSpinnerHolder(@NonNull视图itemView){
超级(项目视图);
tvTest=itemView.findViewById(R.id.tvTest);
spTest=itemView.findviewbyd(R.id.spTest);
}
}

}

你能分享你用于微调器的代码吗?你是什么意思,微调器没有代码?我使用design将它们放在.xml中,我只是从getView()@Appafly调用了它们的id。我在哪里找到它?请检查我的答案,如果我不知道如何使用getView将代码插入onCreate()()