Java 如果选择微调器值,如何在消息框中显示用户id
我想在消息框中显示我的用户id,但选择了微调器值,然后显示id,但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
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