spinner如何刷新数据


myCursor.requery();
((BaseAdapter) mSpinner.getAdapter()).notifyDataSetChanged();
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 你可以在两个 Spinner 之间设置监听器,然后在第一个 Spinner 的选择改变时,根据所选项更新第二个 Spinner 中的数据。 你可以在第一个 Spinner 中设置 OnItemSelectedListener,然后在 onItemSelected 方法中更新第二个 Spinner数据。 例如: ``` spinner1.setOnItemSelectedListener(new OnItemSelectedListener() { @Override public void onItemSelected(AdapterView<?> parent, View view, int position, long id) { // 获取选中的项 String selectedItem = (String) parent.getItemAtPosition(position); // 根据选中的项更新第二个 Spinner 中的数据 updateSpinner2Data(selectedItem); } @Override public void onNothingSelected(AdapterView<?> parent) { // 什么也不做 } }); ``` updateSpinner2Data 方法可以用来根据第一个 Spinner 中的选择更新第二个 Spinner 中的数据,例如: ``` private void updateSpinner2Data(String selectedItem) { List<String> data = new ArrayList<>(); if (selectedItem.equals("选项1")) { data.add("子选项1"); data.add("子选项2"); } else if (selectedItem.equals("选项2")) { data.add("子选项3"); data.add("子选项4"); } // 创建数据源适配器 ArrayAdapter<String> adapter = new ArrayAdapter<>(this, android.R.layout.simple_spinner_item, data); // 为适配器设置下拉列表下拉时的菜单样式。 adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); // 为第二个 Spinner 设置适配器 spinner2.setAdapter(adapter); } ``` 希望这能帮到你。 ### 回答2: 在安卓中,两个Spinner控制的数据联动可以通过监听器实现。首先,我们需要为两个Spinner控件分别设置适配器,以及数据源。接下来,在第一个Spinner的监听器中,我们可以通过获取其选择的项的位置,从而获取对应的值。这个值将作为第二个Spinner的新的数据源。接着,我们需要更新第二个Spinner的适配器,重新设置数据源。最后,调用第二个Spinner的适配器的notifyDataSetChanged()方法,使它的数据源得到更新并刷新。这样,当我们在第一个Spinner中选择一个新的项时,第二个Spinner中显示的数据就会根据新的选择进行联动更新。 这个联动的过程可以在第一个Spinner的OnItemSelectedListener接口的onItemSelected()方法中完成。在这个方法中,我们可以编写代码来获取第一个Spinner的选择项,并据此更新第二个Spinner数据源。接着,我们需要为第二个Spinner创建一个新的适配器,并将新的数据源设置给它。最后,我们需要调用适配器的notifyDataSetChanged()方法来更新第二个Spinner数据。这个方法会通知Spinner控件,数据源已经改变,需要刷新显示。这样,当我们在第一个Spinner中选择一个新的项时,第二个Spinner中显示的数据就会根据新的选择进行联动更新。 总结来说,安卓中两个Spinner控制的数据联动可以通过设置Spinner的适配器和监听器来实现。在第一个Spinner的监听器中,根据选择项获取对应的值,然后更新第二个Spinner数据源,并刷新显示。这样,两个Spinner控制的数据就可以实现联动。 ### 回答3: 在安卓开发中,使用两个Spinner控件进行联动是一种常见的需求。以下是一个简单的实现方法: 首先,在XML布局文件中定义两个Spinner控件,并分别设置id和监听器: ```xml <Spinner android:id="@+id/spinner1" android:layout_width="match_parent" android:layout_height="wrap_content" android:entries="@array/spinner1_items" android:onItemSelectedListener="onSpinner1ItemSelected" /> <Spinner android:id="@+id/spinner2" android:layout_width="match_parent" android:layout_height="wrap_content" android:onItemSelectedListener="onSpinner2ItemSelected" /> ``` 然后,在Java代码中获取两个Spinner控件的实例,并初始化它们的数据源: ```java Spinner spinner1 = (Spinner) findViewById(R.id.spinner1); Spinner spinner2 = (Spinner) findViewById(R.id.spinner2); ArrayAdapter<CharSequence> adapter1 = ArrayAdapter.createFromResource( this, R.array.spinner1_items, android.R.layout.simple_spinner_item ); adapter1.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); spinner1.setAdapter(adapter1); ArrayAdapter<CharSequence> adapter2 = ArrayAdapter.createFromResource( this, R.array.spinner2_items, android.R.layout.simple_spinner_item ); adapter2.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); spinner2.setAdapter(adapter2); ``` 在上述代码中,R.array.spinner1_items和R.array.spinner2_items是两个string-array资源,用于存储Spinner控件的选项。 最后,设置两个Spinner控件的监听器,在其中进行联动操作: ```java spinner1.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { @Override public void onItemSelected(AdapterView<?> parent, View view, int position, long id) { // 获取第一个Spinner的选项 String selectedItem = parent.getItemAtPosition(position).toString(); // 根据选项设置第二个Spinner数据源 ArrayAdapter<CharSequence> adapter = null; if ("选项1".equals(selectedItem)) { adapter = ArrayAdapter.createFromResource( MainActivity.this, R.array.spinner2_options1, android.R.layout.simple_spinner_item ); } else if ("选项2".equals(selectedItem)) { adapter = ArrayAdapter.createFromResource( MainActivity.this, R.array.spinner2_options2, android.R.layout.simple_spinner_item ); } else if ("选项3".equals(selectedItem)) { adapter = ArrayAdapter.createFromResource( MainActivity.this, R.array.spinner2_options3, android.R.layout.simple_spinner_item ); } if (adapter != null) { adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); spinner2.setAdapter(adapter); } } @Override public void onNothingSelected(AdapterView<?> parent) { // do nothing } }); ``` 通过在第一个Spinner的监听器中获取选中的选项,然后根据选项设置第二个Spinner数据源,从而实现了两个Spinner控件的联动效果。 需要注意的是,需要根据实际需求修改其中的选项和选项对应的数据源。以上仅为示例代码。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值