Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cocoa/3.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
Java setOnItemSelectedListener上下文_Java_Android_Multithreading_Handler - Fatal编程技术网

Java setOnItemSelectedListener上下文

Java setOnItemSelectedListener上下文,java,android,multithreading,handler,Java,Android,Multithreading,Handler,首先感谢您的阅读 我在做什么: private Handler puentePais = new Handler() { @Override public void handleMessage(Message msg) { ArrayAdapter<String> dataAdapterPais = new ArrayAdapter<String>(getBaseContext(), R.layout.spinner_item,

首先感谢您的阅读

我在做什么:

private Handler puentePais = new Handler() {
      @Override
      public void handleMessage(Message msg) {

        ArrayAdapter<String> dataAdapterPais = new ArrayAdapter<String>(getBaseContext(), R.layout.spinner_item, listaPaisesString);

        spPais = (Spinner) findViewById(R.id.spPais);
        spPais.setAdapter(dataAdapterPais);
        spPais.setPrompt("Seleccione un pais");
        spPais.setOnItemSelectedListener([WHAT SHOULD I USE HERE?]);

      spPais.setSelection(posPais);

  }
 };
我从服务器获取数据,并试图在微调器上显示这些数据。问题是,我必须将所有网络连接移动到线程,所以我需要等待,直到我获得这些数据,才能将其放到微调器上

我正在使用一个处理程序,一旦我得到了所有的数据,就在微调器上充电

问题:

private Handler puentePais = new Handler() {
      @Override
      public void handleMessage(Message msg) {

        ArrayAdapter<String> dataAdapterPais = new ArrayAdapter<String>(getBaseContext(), R.layout.spinner_item, listaPaisesString);

        spPais = (Spinner) findViewById(R.id.spPais);
        spPais.setAdapter(dataAdapterPais);
        spPais.setPrompt("Seleccione un pais");
        spPais.setOnItemSelectedListener([WHAT SHOULD I USE HERE?]);

      spPais.setSelection(posPais);

  }
 };
当我在onCreate上使用setOnItemSelectedListener()时,我只是使用“this”来使用活动的上下文,但在处理程序上,我试图使用活动的上下文,但一直在问我

“AdapterView类型中的方法setOnItemSelectedListener(AdapterView.OnItemSelectedListener)不适用于参数(上下文)”

  • 我想做的对吗
  • 如何从处理程序中设置setOnItemSelectedListener
代码:

private Handler puentePais = new Handler() {
      @Override
      public void handleMessage(Message msg) {

        ArrayAdapter<String> dataAdapterPais = new ArrayAdapter<String>(getBaseContext(), R.layout.spinner_item, listaPaisesString);

        spPais = (Spinner) findViewById(R.id.spPais);
        spPais.setAdapter(dataAdapterPais);
        spPais.setPrompt("Seleccione un pais");
        spPais.setOnItemSelectedListener([WHAT SHOULD I USE HERE?]);

      spPais.setSelection(posPais);

  }
 };
private Handler puentePais=new Handler(){
@凌驾
公共无效handleMessage(消息消息消息){
ArrayAdapter dataAdapterPais=新的ArrayAdapter(getBaseContext(),R.layout.spinner\u项,ListaPaiseString);
spPais=(微调器)findViewById(R.id.spPais);
设置适配器(dataAdapterPais);
spPais.setPrompt(“Seleccione un pais”);
spPais.setonimselectedListener([我应该在这里使用什么?]);
选举委员会(posPais);
}
};

问候

使用
MyActivity。此
而不是

在活动中实现OnItemSelectedListener接口,然后它就会工作。我这样做了,当我从onCreate设置listener时,它工作得很好。问题是如何从处理程序中执行。只需写“this”即可。我尝试过。问题是使用Context=this;我更改了MyActivityClass context=this;而且效果很好。谢谢你的帮助!谢谢您的解决方案较短。现在,罗宾花了很多时间试图帮助我,我不明白为什么要投他的反对票。。当做投票是为了给答案排序。