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