2017-02-15 86 views
-1

我想在我的微调器上设置onItemSelectedListener,所以如果从微调器中选择一个值,它将显示选定的值。我的代码,微调框上的setOnItemSelectedListener?

ArrayList<String> items = getCountries("data.json"); 

    spinner = (Spinner)findViewById(R.id.spinnerStandard); 
    ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, R.layout.second_layout,R.id.txtStandard,items); 
    spinner.setAdapter(adapter); 
} 

private ArrayList<String> getCountries(String fileName){ 

    JSONArray jsonArray = null; 
    ArrayList<String> cList = new ArrayList<String>(); 
    try { 
     InputStream is = getResources().getAssets().open(fileName); 
     int size = is.available(); 
     byte[] data = new byte[size]; 
     is.read(data); 
     is.close(); 
     String json = new String(data, "UTF-8"); 
     jsonArray=new JSONArray(json); 
     if (jsonArray != null) { 
      for (int i = 0; i < jsonArray.length(); i++) { 
       String standard = jsonArray.getJSONObject(i).getString("standard"); 
       if(!cList.contains(standard)) 
        cList.add(standard); 
      } 
     } 
    } 
    catch (IOException e) 
    { 
     e.printStackTrace(); 
    } 
    catch (JSONException je) 
    { 
     je.printStackTrace(); 
    } 
    return cList; 
} 

我试着用搜索引擎的所有选项,因为我能想到的,并不能找到任何有用的结果为许多其他的变化,所以我显然失去了一些东西。

做这种情况的正确方法是什么?

+0

是的,你是正确的。使用'onItemSelectedListener'你可以实现你的任务。 –

回答

1

setOnItemSelectedListener被称为侦听器时在微调中选择一个项目:

spinner.setOnItemSelectedListener(new OnItemSelectedListener() { 
    @Override 
    public void onItemSelected(AdapterView<?> parentView, View selectedItemView, int position, long id) { 
     // your code here 
    } 

    @Override 
    public void onNothingSelected(AdapterView<?> parentView) { 
     // your code here 
    } 

}); 

现在,因为你知道项目的选择的位置,您可以在微调用它来获取该项目从项目列表名单。

+0

我应该在这个语句下面写下面的代码示例 - spinner.setAdapter(adapter); – neeta

+0

是的,你可以在设置适配器后写下它 – LoveForDroid

+0

谢谢你......它的工作 – neeta

0
spinner.setOnItemSelectedListener(new OnItemSelectedListener() { 
    @Override 
    public void onItemSelected(AdapterView<?> parent, View view, int pos,long id) 
    { 
     //Called when item is selected, use position of item to find it from list of items 
    } 

    @Override 
    public void onNothingSelected(AdapterView<?> arg0) 
    { 
     //Called when no item is selected 
    } 
});