Android使用字符串数组填充微调器

内特

下面,我附上了我的代码,用于尝试将我的字符串数组,名称添加到微调器中作为选项。到现在为止,我什么都没有填充数组,而且我真的不确定自己做错了什么。我查看了该网站上的其他类似问题,以及使用Google的情况,结果都是空的。谁能给我一些指导?谢谢

public class RunesActivity extends Activity {

    public static String page;
    TextView textName;
    Spinner spinner;
    ArrayAdapter<String> adapter;

    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.rune_activity);
        GetRunes getRunes = new GetRunes();
        getRunes.execute();
        spinner = (Spinner) findViewById(R.id.rune_selector);
    }

    public void addListenerOnSpinnerSelection() {
        spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
            @Override
            public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) {
                ((TextView) adapterView.getChildAt(0)).setTextColor(Color.parseColor("#C49246"));
                Toast.makeText(adapterView.getContext(),
                        "Page Selected: " + adapterView.getItemAtPosition(i).toString(),
                        Toast.LENGTH_SHORT).show();

                page = adapterView.getItemAtPosition(i).toString();
            }

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

            }
        });
    }
    class GetRunes extends AsyncTask<String, String, JSONObject> {

        private String api_key="d96236d2-6ee3-4cfd-afa7-f41bdbc11128";
        String region = MainActivity.region.toLowerCase();
        String id = StatsActivity.sumID;
        String encodedKey = null;
        String encodedRegion = null;
        String encodedId = null;
        String url = null;


        // JSON Node Names
        String TAG_NAME = "name";
        String TAG_CURRENT = "current";
        String TAG_SLOTS = "slots";
        String TAG_RUNEID = "runeId";
        String TAG_RUNESLOTID = "runeSlotId";

        @Override
        protected void onPreExecute() {
            super.onPreExecute();
            try {

                // Assign views
                textName = (TextView) findViewById(R.id.name);

                // Encode URL variables
                encodedId = URLEncoder.encode(id, "UTF-8");
                encodedKey = URLEncoder.encode(api_key, "UTF-8");
                encodedRegion = URLEncoder.encode(region, "UTF-8");

                url = "http://prod.api.pvp.net/api/lol/" + region + "/v1.4/summoner/" + id + "/runes?api_key=" + api_key;
                Log.i("..........", url);
            } catch (UnsupportedEncodingException e) {
                e.printStackTrace();
            }

        }

        @Override
        protected JSONObject doInBackground(String... arg0) {
            JSONParser jParser = new JSONParser();

            // Get JSON from URL
            JSONObject json = jParser.getJSONFromUrl(url);
            Log.i("............", "" + json);
            return json;
        }

        @Override
        protected void onPostExecute(JSONObject json) {
            try {
                // Get JSON Object
                JSONObject runes = json.getJSONObject(encodedId);

                // Get JSON Array node
                JSONArray rune = runes.getJSONArray("pages");

                // Loop through pages, page names stored in string array
                String[] name = new String[rune.length()];
                String curr;
                ArrayList<String> runePageNames = new ArrayList<String>();

                for(int i = 0; i < rune.length(); i++) {
                    JSONObject c = rune.getJSONObject(i);
                    name[i] = c.getString(TAG_NAME);
                    curr = c.getString(TAG_CURRENT);

                    if(curr.equals("true"))
                       name[i] = name[i] + " [Active]";
                    runePageNames.add(name[i]);

                    Log.i(".........", name[i]);
                }

                adapter = new ArrayAdapter(RunesActivity.this,
                        android.R.layout.simple_spinner_dropdown_item,
                        runePageNames);

                addListenerOnSpinnerSelection();

                // Set TextView
                textName.setText(name[0]);

            } catch (JSONException e) {
                e.printStackTrace();
            }
        }
    }
}
哈里哈兰

试试这个..

addListenerOnSpinnerSelection();为该微调器调用方法集适配器之前

adapter = new ArrayAdapter(RunesActivity.this,
                    android.R.layout.simple_spinner_dropdown_item,
                    runePageNames);
spinner.setAdapter(adapter );
addListenerOnSpinnerSelection();

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用字符串数组中的 RadioButton 填充 RadioGroup

来自分类Dev

用字符串数组填充Listview

来自分类Dev

字符串到用字符填充的数组

来自分类Dev

用字符串中的后续字母填充字符数组

来自分类Dev

用字符串动态填充字符数组

来自分类Dev

如何在运行时更改微调器的字符串数组如何在if语句中使用微调器的选定项目(eclipse中的Android)

来自分类Dev

extJs-用字符串数组填充网格面板

来自分类Dev

用字符串填充数组的最佳方法

来自分类Dev

如何用字符串数组填充“ asp:ListBox”?

来自分类Dev

在C ++中用字符串填充数组

来自分类Dev

用字符串填充数组的最佳方法

来自分类Dev

如何使用Java中的循环用字母填充字符串数组?

来自分类Dev

Android-使用网址填充字符串数组

来自分类Dev

在微调器中隐藏字符串数组值

来自分类Dev

使用字符串问题android

来自分类Dev

使用字符串'</ textarea>'预填充textarea

来自分类Dev

使用字符数组反转字符串

来自分类Dev

使用字符数组代替字符串

来自分类Dev

使用对象和字符串加载微调器

来自分类Dev

Android:如何在列表行内使用字符串数组列表

来自分类Dev

如何在Android中使用字符串数组引用媒体文件?

来自分类Dev

通过在android中开发在sqlite中使用字符串和数组创建表

来自分类Dev

如何从C中的CSV文件中使用字符串(char *)填充2D数组

来自分类Dev

使用字符串索引数组避免类型安全?

来自分类Dev

在C中使用字符串数组

来自分类Dev

jq:无法使用字符串索引数组

来自分类Dev

使用字节数组和字符串

来自分类Dev

Vigenere Square Lookup(使用字符串数组)

来自分类Dev

使用字符串数组动态创建RadioButton

Related 相关文章

热门标签

归档