超链码语者 2020-03-20 16:43 采纳率: 0%
浏览 385

android为什么点击spinner用静态数据可以监听,而动态加载的不行?

android为什么点击spinner用静态数据可以监听,而动态加载的不行?
``` Handler handler = new Handler() {
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
switch (msg.what) {
case -1:
Toast.makeText(Cache.getContext().getApplicationContext(), getResources().getString(R.string.errorMsg), Toast.LENGTH_SHORT).show();
break;

    case 2://公司名称下拉表
      if (companyNameDto != null && companyNameDto.getStatus() != null) {
        if (companyNameDto.getStatus() == 200) {
          List<MonitorCompany> list = companyNameDto.getData();
          Log.i("sysout", "companyNameList:" + list);
          companyNames.add("所有单位");
          for (int i = 0; i < list.size(); i++) {
            companyNames.add(list.get(i).getName());
          }
          Log.i("sysout", "companyNames:" + list.size() + companyNames);
          }
        }
      }
      break;

    default:
      break;
  }
}

};
/**

  • 加载公司列表
    */
    public void loadCompany() {
    MyApplication.ThreadPoolProxyFactory.getNormalThreadPoolProxy().execute(new Runnable() {
    @Override
    public void run() {
    try {
    companyNameDto = ServerMain.listCompanyMenu("get", getResources().getString(R.string.listCompanyMenu), null);
    Log.i("Sysout", "companyData:" + companyNameDto);
    handler.sendEmptyMessage(2);
    } catch (Exception e) {
    handler.sendEmptyMessage(-1);
    e.printStackTrace();
    }
    }

    });
    List array1 = Arrays.asList("所有公司", "xx科技", "xx大学", "xx市", "上海市");
    List array2 = companyNames;
    Log.i("sysout", "array1:" +array1+ companyNames);
    DevListSpinAdapter adapterOne = new DevListSpinAdapter(this, array2, R.layout.spinner_item);
    spinner1.setAdapter(adapterOne);
    // spinner1.setSelection(0, true);
    // spinner1.setSelection(0);
    }

    /**

  • Spinner1点击事件
    */
    public class Spinner1ClickListener implements AdapterView.OnItemSelectedListener {
    // String ListenName = spinner1.getSelectedItem().toString();

    @Override
    public void onItemSelected(AdapterView<?> adapterView, View view, int position, long l) {
    //String str = (String) adapterView.getItemAtPosition(position);
    String str=spinner1.getSelectedItem().toString();
    //String str = (String) array1[position];
    // String str = (String) adapterView.getAdapter().getItem(i);
    /* String str = (String) companyNames.get(i);
    String str1 = (String) companyNames.toArray()[i];*/
    companyName = str;
    Log.i("sysout", "Spinner1str:" + str + companyName + companyNames);

    Toast.makeText(DeviceListActivity.this, str+companyName, Toast.LENGTH_SHORT).show();
    }

    @Override
    public void onNothingSelected(AdapterView<?> adapterView) {

    }
    }

  • 写回答

1条回答 默认 最新

  • 柠檬味水溶cc 2020-03-23 14:44
    关注

    我也遇到了同样的情况,添加了 spinner2Adapter.notifyDataSetChanged();后问题解决了

    评论

报告相同问题?

悬赏问题

  • ¥15 HFSS 中的 H 场图与 MATLAB 中绘制的 B1 场 部分对应不上
  • ¥15 如何在scanpy上做差异基因和通路富集?
  • ¥20 关于#硬件工程#的问题,请各位专家解答!
  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配
  • ¥15 Power query添加列问题
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 報錯:Person is not mapped,如何解決?