Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/398.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 从微调器中选择的位置创建一个映射回数组中的值_Java_Android_Spinner - Fatal编程技术网

Java 从微调器中选择的位置创建一个映射回数组中的值

Java 从微调器中选择的位置创建一个映射回数组中的值,java,android,spinner,Java,Android,Spinner,这应该简单得多 我有一个JSON对象数组,我用它来填充微调器,如果我用名称和值对填充微调器,整个项目都可以正常工作,但看起来很糟糕。如果仅使用名称填充微调器,则会丢失值。从阅读中我可以看出,唯一的方法是用名称填充微调器,检索选择的位置,然后返回数组,找到与微调器中相同位置的名称值,这就是它的工作方式吗 如果是,我该怎么做 这是推广微调器的代码 myUsers = jsonResponse.getJSONArray("GetBusinessNamesResult"); ArrayAdapter&

这应该简单得多

我有一个JSON对象数组,我用它来填充微调器,如果我用名称和值对填充微调器,整个项目都可以正常工作,但看起来很糟糕。如果仅使用名称填充微调器,则会丢失值。从阅读中我可以看出,唯一的方法是用名称填充微调器,检索选择的位置,然后返回数组,找到与微调器中相同位置的名称值,这就是它的工作方式吗

如果是,我该怎么做

这是推广微调器的代码

myUsers = jsonResponse.getJSONArray("GetBusinessNamesResult");

ArrayAdapter<String> adapter = new ArrayAdapter<String>(PropertyManagement.this, android.R.layout.simple_spinner_item);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);

for (int i = 0; i < myUsers.length(); ++i)
{
    try {

        adapter.add(myUsers.getJSONObject(i).getString("BusinessName"));  

    } catch (JSONException e) {
        e.printStackTrace();
    }                   
}
所以,只要看看上面的代码,我想我有原始数组和位置,或者我可能只有选定的名称,在这种情况下,这将不起作用,也许应该回头看看我的用户

名称-值对是BusinessName和BusinessPhone。你认为我能从中得到我需要的吗

干杯


Mike.

子类BaseAdapter并使用它代替ArrayAdapter

以下是一个例子:

public class BaseAdapterWithHiddenValue extends BaseAdapter {

    public static class Entry {

        public String name;
        public String value;
    }

    List<Entry> items = new LinkedList<Entry>();

    public void add(String name, String value) {
        Entry e = new Entry();
        e.name = name;
        e.value = value;
        items.add(e);
    }

    @Override
    public int getCount() {
        return items.size();
    }

    @Override
    public Entry getItem(int arg0) {
        return items.get(arg0);
    }

    @Override
    public long getItemId(int arg0) {
        return 0;
    }

    @Override
    public View getView(int arg0, View arg1, ViewGroup arg2) {
        // TODO: I'm lazy, create individual list entry view here
        return null;
    }

}

很抱歉,我对java是个新手,我能走到这一步的唯一原因是因为我掌握了其他编程语言的技能。我不知道从哪里开始上面的代码!我会给你的答案,因为你送我在正确的方向,但这一切…哈哈。但谢谢我有它的工作,我可以继续。我想我们不想泄露所有的秘密!干杯,迈克。
public class BaseAdapterWithHiddenValue extends BaseAdapter {

    public static class Entry {

        public String name;
        public String value;
    }

    List<Entry> items = new LinkedList<Entry>();

    public void add(String name, String value) {
        Entry e = new Entry();
        e.name = name;
        e.value = value;
        items.add(e);
    }

    @Override
    public int getCount() {
        return items.size();
    }

    @Override
    public Entry getItem(int arg0) {
        return items.get(arg0);
    }

    @Override
    public long getItemId(int arg0) {
        return 0;
    }

    @Override
    public View getView(int arg0, View arg1, ViewGroup arg2) {
        // TODO: I'm lazy, create individual list entry view here
        return null;
    }

}