Java 如果选择微调器值,如何在消息框中显示用户id

Java 如果选择微调器值,如何在消息框中显示用户id,java,android,android-studio,spinner,Java,Android,Android Studio,Spinner,我想在消息框中显示我的用户id,但选择了微调器值,然后显示id,但id不显示。这是我的密码 主要类别代码: public class AgentProgress extends Activity { Spinner sp1, sp2; ListView ls1; ProgressBar pbbar; ArrayList<String> names = new ArrayList<String>(); ArrayList<AgentID> web; Array

我想在消息中显示我的用户id,但选择了微调器值,然后显示id,但id不显示。这是我的密码

主要类别代码:

public class AgentProgress extends Activity {

Spinner sp1, sp2;
ListView ls1;
ProgressBar pbbar;
ArrayList<String> names = new ArrayList<String>();
ArrayList<AgentID> web;
ArrayList<String> wordlist;
ArrayAdapter<String> adaptername;
ArrayList<HashMap<String, String>> menuItems1 = new ArrayList<HashMap<String, String>>();
static final String KEY_TABLE = "AGENTDATA";
static final String KEY_AMOUNT = "Parent_Agent_Name";
static final String KEY_USER = "Parent_Agent_Id_Pk";


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_agent_progress);

    sp1 = (Spinner) findViewById(R.id.spnames);
    sp2 = (Spinner) findViewById(R.id.spyear);

    ArrayList<String> years = new ArrayList<String>();

    int thisYear = Calendar.getInstance().get(Calendar.YEAR);
    for (int i = thisYear; i >= 2011; i--) {
        years.add(Integer.toString(i));
    }
    ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
            android.R.layout.simple_spinner_item, years);


    sp2.setAdapter(adapter);


    pbbar = (ProgressBar) findViewById(R.id.pbbar);
    pbbar.setVisibility(View.GONE);

    ArrayList<HashMap<String, String>> menuItems = new ArrayList<HashMap<String, String>>();

    try {
        web = new ArrayList<AgentID>();
        wordlist = new ArrayList<String>();

        if (connectionAvailable() == true) {

            StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder()
                    .permitAll().build();

            StrictMode.setThreadPolicy(policy);

            WebServiceCAll com = new WebServiceCAll();

            AgentID agent = new AgentID();
            // final String string1 = getIntent().getStringExtra("Agentid");

            String strXml = com.LoadAgent("LoadAgent");

            //messageBox("test", strXml);
            XMLParser parser = new XMLParser();
            Document doc = parser.getDomElement(strXml); // getting DOM element

            NodeList nl = doc.getElementsByTagName(KEY_TABLE);
            //String[] arList = null;
            //String[] arListkey = null;
            //  int conttotal=0;
            // looping through all item nodes <item>


            for (int j = 0; j < nl.getLength(); j++) {

                // creating new HashMap


                Map<String, String> map = new HashMap<String, String>();
                // adding each child node to HashMap key => value
                //map.put(KEY_AMOUNT, parser.getValue(e, KEY_AMOUNT));
                //map.put(KEY_USER,parser.getValue(e,KEY_USER));
                // adding HashList to ArrayList
                //menuItems.add(map);

                Element e = (Element) nl.item(j);
                //messageBox("test", "fahad");
                agent.setID(map.put(KEY_USER, parser.getValue(e, KEY_USER)));
                agent.setname(map.put(KEY_AMOUNT, parser.getValue(e, KEY_AMOUNT)));
                names.add(map.put(KEY_AMOUNT, parser.getValue(e, KEY_AMOUNT)));


            }


        } else {
            messageBox("ERROR", "No Internet Service");
        }


    } catch (Exception ex) {

    }


    adaptername = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, names);
    sp1.setAdapter(adaptername);
    AgentProgress.this.runOnUiThread(new Runnable() {
        @Override
        public void run() {
            adaptername.notifyDataSetChanged();
        }
    });


    sp1.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
        @Override
        public void onItemSelected(AdapterView<?> adapterView, View view, int agr, long l) {

            HashMap<String,Object> obj=(HashMap<String,Object>) adaptername.getItem(agr);

            String pr=(String) obj.get(KEY_USER);

            messageBox("",pr);
        }

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

        }
    });




}


        private void messageBox(String method, String message) {
            AlertDialog.Builder messageBox = new AlertDialog.Builder(this);
            messageBox.setTitle(method);
            messageBox.setMessage(message);
            messageBox.setCancelable(false);
            messageBox.setNeutralButton("OK", null);
            messageBox.show();
        }

        private boolean connectionAvailable() {
            boolean connected = false;
            ConnectivityManager connectivityManager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
            if (connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE).getState() == NetworkInfo.State.CONNECTED ||
                    connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI).getState() == NetworkInfo.State.CONNECTED ||
                    connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE_SUPL).getState() == NetworkInfo.State.CONNECTED) {
                //we are connected to a network
                connected = true;
            }
            return connected;
}
}
公共类代理程序扩展活动{
Spinner sp1、sp2;
ListView ls1;
ProgressBar-pbbar;
ArrayList name=新的ArrayList();
ArrayList网站;
ArrayList词表;
阵列适配器名称;
ArrayList menuItems1=新建ArrayList();
静态最终字符串键\u TABLE=“AGENTDATA”;
静态最终字符串KEY\u AMOUNT=“Parent\u Agent\u Name”;
静态最终字符串KEY\u USER=“Parent\u Agent\u Id\u Pk”;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity\u agent\u progress);
sp1=(微调器)findViewById(R.id.spnames);
sp2=(微调器)findViewById(R.id.spyear);
ArrayList年份=新ArrayList();
int thiswear=Calendar.getInstance().get(Calendar.YEAR);
对于(int i=今年;i>=2011;i--){
年。添加(整数。toString(i));
}
ArrayAdapter=新的ArrayAdapter(此,
android.R.layout.simple_微调器_项目,年);
sp2.设置适配器(适配器);
pbbar=(ProgressBar)findViewById(R.id.pbbar);
pbbar.setVisibility(View.GONE);
ArrayList menuItems=新建ArrayList();
试一试{
web=新的ArrayList();
wordlist=newarraylist();
if(connectionAvailable()==true){
StrictMode.ThreadPolicy policy=新建StrictMode.ThreadPolicy.Builder()
.permitAll().build();
StrictMode.setThreadPolicy(策略);
WebServiceCAll com=新的WebServiceCAll();
AgentID agent=new AgentID();
//最终字符串string1=getIntent().getStringExtra(“Agentid”);
字符串strXml=com.LoadAgent(“LoadAgent”);
//messageBox(“测试”,strXml);
XMLParser=新的XMLParser();
Document doc=parser.getDomeElement(strXml);//获取DOM元素
NodeList nl=doc.getElementsByTagName(键表);
//字符串[]arList=null;
//字符串[]arListkey=null;
//int conttotal=0;
//循环通过所有项目节点
对于(int j=0;jvalue
//put(KEY_AMOUNT,parser.getValue(e,KEY_AMOUNT));
//put(KEY_USER,parser.getValue(e,KEY_USER));
//将哈希列表添加到ArrayList
//menuItems.add(地图);
元素e=(元素)nl.第(j)项;
//消息框(“测试”、“fahad”);
setID(map.put(KEY_用户,parser.getValue(e,KEY_用户));
setname(map.put(KEY_-AMOUNT,parser.getValue(e,KEY_-AMOUNT));
name.add(map.put(KEY_-AMOUNT,parser.getValue(e,KEY_-AMOUNT));
}
}否则{
messageBox(“错误”,“无互联网服务”);
}
}捕获(例外情况除外){
}
adaptername=new ArrayAdapter(这是android.R.layout.simple\u微调器\u项,名称);
设置适配器(适配器名称);
AgentProgress.this.rununuithread(新的Runnable(){
@凌驾
公开募捐{
adaptername.notifyDataSetChanged();
}
});
setOnItemSelectedListener(新的AdapterView.OnItemSelectedListener(){
@凌驾
已选择公共视图(AdapterView AdapterView、View-View、int-agr、long-l){
HashMap obj=(HashMap)adaptername.getItem(agr);
String pr=(String)obj.get(KEY_USER);
消息框(“,pr);
}
@凌驾
未选择公共无效(AdapterView AdapterView){
}
});
}
私有void消息框(字符串方法,字符串消息){
AlertDialog.Builder messageBox=新建AlertDialog.Builder(此);
messageBox.setTitle(方法);
messageBox.setMessage(message);
messageBox.setCancelable(假);
messageBox.setNeutralButton(“确定”,空);
messageBox.show();
}
私有布尔连接可用(){
布尔连接=假;
ConnectivityManager ConnectivityManager=(ConnectivityManager)getSystemService(Context.CONNECTIVITY_服务);
if(connectivityManager.getNetworkInfo(connectivityManager.TYPE_MOBILE).getState()==NetworkInfo.State.CONNECTED||
connectivityManager.getNetworkInfo(connectivityManager.TYPE_WIFI).getState()==NetworkInfo.State.CONNECTED||
connectivityManager.getNetworkInfo(connectivityManager.TYPE_MOBILE\u SUPL.getState()==NetworkInfo.State.CONNECTED){
//我们连接到一个网络
连接=真;
}
回流连接;
}
}
它在哈希映射上选定的侦听器项中显示错误消息,错误消息为:

incompatible types: String cannot be converted to HashMap<String,Object>
不兼容类型:无法将字符串转换为HashMap

您正在尝试获取
项目
,而不获取
适配器

替换

HashMap<String,Object> obj=(HashMap<String,Object>) adaptername.getItem(agr);
HashMap obj=(HashMap)adaptername.getItem(agr);

HashMap obj=(HashMap)adapterView.getAdapter().getItem(agr);

您正在尝试获取
项目
,而不获取
适配器

替换

HashMap<String,Object> obj=(HashMap<String,Object>) adaptername.getItem(agr);
HashMap obj=(HashMap)adaptername.getItem(agr);

HashMap obj=(HashMap)adapterView.getAdapter().getItem(agr);

String pr=adaptername.getItem(agr)您正在设置ArrayList name=new ArrayList();到适配器,并在获取时调用HashMap obj=(HashMap)adaptername.getItem(agr)。如何将字符串转换为HashMap。如果字符串是键,只需右键obj.get(adaptername.getItem(agr));字符串pr=adapternam