简体   繁体   English

如何在Android的Spinner中加载数据?

[英]How to load data in spinner in Android?

I tried to load data into my spinner. 我试图将数据加载到微调器中。 But it doesn't works well. 但是,效果不佳。 I don't know the reason for that. 我不知道是什么原因。 I have tried using only diamond operator (<>) and other methods in Stack Overflow. 我试过在Stack Overflow中仅使用Diamond运算符(<>)和其他方法。

Spinner spinner = (Spinner) findViewById(R.id.spinner3);

            spinner.setOnItemSelectedListener((AdapterView.OnItemSelectedListener) this);
                    List<String> view = new ArrayList<String>();
            view.add("Grid view");
            view.add("chart view");



            ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item,View);


            dataAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);


            spinner.setAdapter(dataAdapter);

更改此代码

 ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item,view);//insted of View use view

使用view代替View

  ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item,view);

Another workable example of your code 您的代码的另一个可行示例

Spinner spinner = (Spinner) findViewById(R.id.spinner);
spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
    @Override
    public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {

    }

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

    }
});
spinner.setAdapter(new ArrayAdapter<>(this, android.R.layout.simple_spinner_dropdown_item,
        Arrays.asList("Grid View", "chart view")));

spinner=(Spinner)findViewById(R.id.spinner); spinner =(Spinner)findViewById(R.id.spinner);

ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(this, R.layout.spinner_items,yourArrayList);
spinner.setAdapter(dataAdapter);
spinner.setOnItemSelectedListener(this);

@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
    switch (parent.getId()){
        case R.id.spinner:
            String str_type=parent.getItemAtPosition(position).toString();
            TypeSelected = position;
            break;
    }
}

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

try 尝试

String[] data= {"Grid view","chart view"};
Spinner spinner = (Spinner) findViewById(R.id.spinner3);
ArrayAdapter<String> adapter = new ArrayAdapter<String>(getActivity(),android.R.layout.simple_spinner_item,data);

spinner .setAdapter(adapter);
adapter.notifyDataSetChanged();

then you could get selected items position on 那么您可以将所选项目放在

spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
            @Override
            public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {    }

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM