OnItemClickListener() 用于列表视图的每个项目中的微调器
OnItemClickListener() for spinners in each item of a list view
我有一个带有自定义适配器的列表视图,我在该列表视图的每个项目中都放置了一个微调器,但问题是,这些项目是由用户添加的,所以我不知道如何捕捉它当他在微调器中进行选择时。
PS。我在该列表视图的每个项目中都放置了一个微调器,但我不知道如何听取那些内部微调器中的选择。
那么我是将 onIitemClickListener 放在自定义适配器的 GetView() 中还是放在 MainActivity() 的 onCreate 函数中?
微调器确实有一个 ID,但由于我使用的是自定义列表视图,所以每个微调器几乎都具有相同的 ID,除非我在 GetView() 中指定了列表视图的项目,但即便如此是否可以在 getView() 中放置一个侦听器并让它 运行 24/7?
提前致谢!
您应该使用 GetView() 在 OnCreate() 方法中添加 OnItemClickListener。只要您正确使用 GetView(),就不一定需要 ID。如果需要,还可以使用 OnItemSelectedListener。您可以了解更多 here.
希望对您有所帮助!
首先我建议你使用 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);
}
}
}
我有一个带有自定义适配器的列表视图,我在该列表视图的每个项目中都放置了一个微调器,但问题是,这些项目是由用户添加的,所以我不知道如何捕捉它当他在微调器中进行选择时。
PS。我在该列表视图的每个项目中都放置了一个微调器,但我不知道如何听取那些内部微调器中的选择。
那么我是将 onIitemClickListener 放在自定义适配器的 GetView() 中还是放在 MainActivity() 的 onCreate 函数中?
微调器确实有一个 ID,但由于我使用的是自定义列表视图,所以每个微调器几乎都具有相同的 ID,除非我在 GetView() 中指定了列表视图的项目,但即便如此是否可以在 getView() 中放置一个侦听器并让它 运行 24/7?
提前致谢!
您应该使用 GetView() 在 OnCreate() 方法中添加 OnItemClickListener。只要您正确使用 GetView(),就不一定需要 ID。如果需要,还可以使用 OnItemSelectedListener。您可以了解更多 here.
希望对您有所帮助!
首先我建议你使用 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);
}
}
}