package org.stu80;import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemSelectedListener;
import android.widget.ArrayAdapter;
import android.widget.EditText;
import android.widget.LinearLayout;
import android.widget.ListView;
import android.widget.SimpleAdapter;
import android.widget.Spinner;
import android.widget.TextView;
import android.widget.Toast;
import android.view.View; import org.dom4j.Document;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
import org.ksoap2.SoapEnvelope;
import org.ksoap2.serialization.SoapObject;
import org.ksoap2.serialization.SoapSerializationEnvelope;
import org.ksoap2.transport.AndroidHttpTransport;//以上import  忽略,,无视public class Stu80Activity extends Activity {
    /** Called when the activity is first created. */
    public static SoapObject soapObject ;  
private static final String NAMESPACE = "http://tempuri.org/";
private static String URL = "http://www.stu80.com/android/list.asmx";
 private static final String METHOD_NAME = "ListInfo";
private static String SOAP_ACTION = "http://tempuri.org/ListInfo";
private ListView ls;
@Override


    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        //加载mainxml布局文件,没有问题
        setContentView(R.layout.main);        
        
          //获取适配器内容,,默认取参数为1的数据。
        ArrayList items = getItems(1);
        //显示函数,将适配器内容显示到ListView
        display(items);
}
public void display(ArrayList items)
        {
        ls=(ListView) findViewById(R.id.ls);
        SimpleAdapter adapter = new SimpleAdapter(this, items, R.layout.simple_expandable_list_item_1, 
                new String[] {"ls_title","ls_name","ls_time","ls_num"}, 
                new int[] {R.id.ls_title,R.id.ls_name, R.id.ls_time,R.id.ls_num});
        //位ListView设置Adapter
        ls.setAdapter(adapter);
  // ------以上是ListView显示内容。。     
        
  // ----以下是增加Spinner,并监听
       
      //添加Spinner事件监听 
        Spinner sp=(Spinner) findViewById(R.id.sp);
        ArrayAdapter ada = ArrayAdapter.createFromResource(this, R.array.list, android.R.layout.simple_spinner_item); 
        ada.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
        sp.setAdapter(ada); 
      //定义子元素选择监听器  
        sp.setSelection(0, false);
        sp.setOnItemSelectedListener(new OnItemSelectedListener() { 
            @Override 
           public void onItemSelected(AdapterView<?> parent, View view,  
                   int position, long id) {  
                //  Toast.makeText(Stu80Activity.this,"选择的色彩: " +  
                //  parent.getItemAtPosition(position).toString(), Toast.LENGTH_LONG).show(); 
             String pos=parent.getItemAtPosition(position).toString();
               TextView tv=(TextView) findViewById(R.id.logotitle);
             tv.setText(pos);
         //------------问题就在这里,选中事件触发,到jump函数
             jump(2);
            }  
           @Override 
            public void onNothingSelected(AdapterView<?> parent) {  
            }  
  });  
}


     public void jump(int pos)
{

     if(pos==2)
     {
     //为了用于测试
       Toast.makeText(Stu80Activity.this,"选择的pos: " +  
                     pos, Toast.LENGTH_LONG).show(); 
            //---为了用于测试         
      //问题就在这里,,上面的语句可以显示,且是正确的。但是下面怎么会无法显示呢 ,出现标题所示的错误              
     ArrayList items=getItems(pos);
     display(items);
     }
    
}
     public ArrayList getItems(int pos) {
      
ArrayList items = new ArrayList();
try {       soapObject = new SoapObject(NAMESPACE, METHOD_NAME);
      if(pos==1)
      {
               soapObject.addProperty("param", "1");
      }
    if(pos==2)
      {
               soapObject.addProperty("param", "2");
      }
               AndroidHttpTransport ht = new AndroidHttpTransport(URL);
               SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
              
               envelope.bodyOut = soapObject;
               envelope.dotNet = true;
               envelope.setOutputSoapObject(soapObject);                ht.call(SOAP_ACTION, envelope);                            soapObject = (SoapObject) envelope.bodyIn;
           //  soapObject = (SoapObject) envelope.getResponse();
            Object result= (Object) soapObject.getProperty(METHOD_NAME+"Result");
          Document document = DocumentHelper.parseText(result.toString());
          Element root=document.getRootElement();
         Iterator iterator=root.elementIterator();
         while(iterator.hasNext())
         {
        HashMap map = new HashMap();
          Element element=(Element)iterator.next();
          if(element.getName().equals("list"))
          {
        map.put("ls_title",element.element("title").getText());
        map.put("ls_name","by: "+element.element("name").getText());
        map.put("ls_time",element.element("time").getText());
        if(element.element("num").getText()==""||element.element("num").getText()==null)
        {
        map.put("ls_num","[0]");
        }else{
        map.put("ls_num","["+element.element("num").getText()+"]");
        }
         items.add(map);
          }
         }        
      //        tx.setText(s);  
       
     } catch (Exception e) {
      e.printStackTrace();
  //  tx.setText(""+e+"");
     }
return items;
}
}
}
请问怎么改???高手来解答啊。

解决方案 »

  1.   

    默认参数为1的可以获取的,,就是参数为2的,,spinner监听有问题还是其他方面的问题??请教了
      

  2.   

    05-18 10:05:57.275: D/ddm-heap(218): Got feature list request
    05-18 10:06:06.426: D/dalvikvm(218): GC freed 4190 objects / 290488 bytes in 181ms
    05-18 10:06:10.266: D/dalvikvm(218): GC freed 7553 objects / 542800 bytes in 99ms
    05-18 10:06:14.956: D/dalvikvm(218): GC freed 9303 objects / 676696 bytes in 140ms
    05-18 10:06:18.385: D/dalvikvm(218): GC freed 8122 objects / 576288 bytes in 95ms
    05-18 10:06:22.246: D/dalvikvm(218): GC freed 8099 objects / 571792 bytes in 114ms
    05-18 10:06:23.906: I/dalvikvm(218): Stack overflow, expanding (0x41869200 to 0x41869000)
    05-18 10:06:23.906: I/dalvikvm(218): Shrank stack (to 0x41869200, curFrame is 0x4186beb8)
    05-18 10:06:23.926: D/AndroidRuntime(218): Shutting down VM
    05-18 10:06:23.939: W/dalvikvm(218): threadid=3: thread exiting with uncaught exception (group=0x4001b188)
    05-18 10:06:23.945: E/AndroidRuntime(218): Uncaught handler: thread main exiting due to uncaught exception
    05-18 10:06:24.085: E/AndroidRuntime(218): java.lang.StackOverflowError
    05-18 10:06:24.085: E/AndroidRuntime(218):  at android.text.StaticLayout.<init>(StaticLayout.java:97)
    05-18 10:06:24.085: E/AndroidRuntime(218):  at android.text.StaticLayout.<init>(StaticLayout.java:54)
    05-18 10:06:24.085: E/AndroidRuntime(218):  at android.text.StaticLayout.<init>(StaticLayout.java:45)
    05-18 10:06:24.085: E/AndroidRuntime(218):  at android.widget.TextView.makeNewLayout(TextView.java:4914)
    05-18 10:06:24.085: E/AndroidRuntime(218):  at android.widget.TextView.checkForRelayout(TextView.java:5350)
    05-18 10:06:24.085: E/AndroidRuntime(218):  at android.widget.TextView.setText(TextView.java:2684)
    05-18 10:06:24.085: E/AndroidRuntime(218):  at android.widget.TextView.setText(TextView.java:2552)
    05-18 10:06:24.085: E/AndroidRuntime(218):  at android.widget.TextView.setText(TextView.java:2527)
    05-18 10:06:24.085: E/AndroidRuntime(218):  at org.stu80.Stu80Activity$1.onItemSelected(Stu80Activity.java:71)
    05-18 10:06:24.085: E/AndroidRuntime(218):  at android.widget.AdapterView.fireOnSelected(AdapterView.java:864)
    05-18 10:06:24.085: E/AndroidRuntime(218):  at android.widget.AdapterView.selectionChanged(AdapterView.java:847)
    05-18 10:06:24.085: E/AndroidRuntime(218):  at android.widget.AdapterView.checkSelectionChanged(AdapterView.java:970)
    05-18 10:06:24.085: E/AndroidRuntime(218):  at android.widget.Spinner.layout(Spinner.java:158)
    05-18 10:06:24.085: E/AndroidRuntime(218):  at android.widget.AbsSpinner.setSelectionInt(AbsSpinner.java:309)
    05-18 10:06:24.085: E/AndroidRuntime(218):  at android.widget.AbsSpinner.setSelection(AbsSpinner.java:285)
    05-18 10:06:24.085: E/AndroidRuntime(218):  at org.stu80.Stu80Activity.display(Stu80Activity.java:62)
    05-18 10:06:24.085: E/AndroidRuntime(218):  at org.stu80.Stu80Activity.jump(Stu80Activity.java:87)
    05-18 10:06:24.085: E/AndroidRuntime(218):  at org.stu80.Stu80Activity$1.onItemSelected(Stu80Activity.java:72)
    05-18 10:06:24.085: E/AndroidRuntime(218):  at android.widget.AdapterView.fireOnSelected(AdapterView.java:864)
    05-18 10:06:24.085: E/AndroidRuntime(218):  at android.widget.AdapterView.selectionChanged(AdapterView.java:847)
    05-18 10:06:24.085: E/AndroidRuntime(218):  at android.widget.AdapterView.checkSelectionChanged(AdapterView.java:970)
    05-18 10:06:24.085: E/AndroidRuntime(218):  at android.widget.Spinner.layout(Spinner.java:158)
    05-18 10:06:24.085: E/AndroidRuntime(218):  at android.widget.AbsSpinner.setSelectionInt(AbsSpinner.java:309)
    05-18 10:06:24.085: E/AndroidRuntime(218):  at android.widget.AbsSpinner.setSelection(AbsSpinner.java:285)
    05-18 10:06:24.085: E/AndroidRuntime(218):  at org.stu80.Stu80Activity.display(Stu80Activity.java:62)
    05-18 10:06:24.085: E/AndroidRuntime(218):  at org.stu80.Stu80Activity.jump(Stu80Activity.java:87)
    05-18 10:06:24.085: E/AndroidRuntime(218):  at org.stu80.Stu80Activity$1.onItemSelected(Stu80Activity.java:72)
    05-18 10:06:24.085: E/AndroidRuntime(218):  at android.widget.AdapterView.fireOnSelected(AdapterView.java:864)
    05-18 10:06:24.085: E/AndroidRuntime(218):  at android.widget.AdapterView.selectionChanged(AdapterView.java:847)
    05-18 10:06:24.085: E/AndroidRuntime(218):  at android.widget.AdapterView.checkSelectionChanged(AdapterView.java:970)
    05-18 10:06:24.085: E/AndroidRuntime(218):  at android.widget.Spinner.layout(Spinner.java:158)
    05-18 10:06:24.085: E/AndroidRuntime(218):  at android.widget.AbsSpinner.setSelectionInt(AbsSpinner.java:309)
    05-18 10:06:24.085: E/AndroidRuntime(218):  at android.widget.AbsSpinner.setSelection(AbsSpinner.java:285)
    05-18 10:06:24.085: E/AndroidRuntime(218):  at org.stu80.Stu80Activity.display(Stu80Activity.java:62)
    05-18 10:06:24.085: E/AndroidRuntime(218):  at org.stu80.Stu80Activity.jump(Stu80Activity.java:87)
    05-18 10:06:24.085: E/AndroidRuntime(218):  at org.stu80.Stu80Activity$1.onItemSelected(Stu80Activity.java:72)
    05-18 10:06:24.085: E/AndroidRuntime(218):  at android.widget.AdapterView.fireOnSelected(AdapterView.java:864)
    05-18 10:06:24.085: E/AndroidRuntime(218):  at android.widget.AdapterView.selectionChanged(AdapterView.java:847)
    05-18 10:06:24.085: E/AndroidRuntime(218):  at android.widget.AdapterView.checkSelectionChanged(AdapterView.java:970)
    05-18 10:06:24.085: E/AndroidRuntime(218):  at android.widget.Spinner.layout(Spinner.java:158)
    05-18 10:06:24.085: E/AndroidRuntime(218):  at android.widget.AbsSpinner.setSelectionInt(AbsSpinner.java:309)
    05-18 10:06:24.085: E/AndroidRuntime(218):  at android.widget.AbsSpinner.setSelection(AbsSpinner.java:285)
    05-18 10:06:24.085: E/AndroidRuntime(218):  at org.stu80.Stu80Activity.display(Stu80Activity.java:62)
    05-18 10:06:24.085: E/AndroidRuntime(218):  at org.stu80.Stu80Activity.jump(Stu80Activity.java:87)
    05-18 10:06:24.085: E/AndroidRuntime(218):  at org.stu80.Stu80Activity$1.onItemSelected(Stu80Activity.java:72)
    05-18 10:06:24.085: E/AndroidRuntime(218):  at android.widget.AdapterView.fireOnSelected(AdapterView.java:864)
    05-18 10:06:24.085: E/AndroidRuntime(218):  at android.widget.AdapterView.selectionChanged(AdapterView.java:847)
    05-18 10:06:24.085: E/AndroidRuntime(218):  at android.widget.AdapterView.checkSelectionChanged(AdapterView.java:970)
    05-18 10:06:24.085: E/AndroidRuntime(218):  at android.widget.Spinner.layout(Spinner.java:158)
    05-18 10:06:24.085: E/AndroidRuntime(218):  at android.widget.AbsSpinner.setSelectionInt(AbsSpinner.java:309)
    05-18 10:06:24.085: E/AndroidRuntime(218):  at android.widget.AbsSpinner.setSelection(AbsSpinner.java:285)
    05-18 10:06:24.085: E/AndroidRuntime(218):  at org.stu80.Stu80Activity.display(Stu80Activity.java:62)
    05-18 10:06:24.085: E/AndroidRuntime(218):  at org.stu80.Stu80Activity.jump(Stu80Activity.java:87)
    05-18 10:06:24.085: E/AndroidRuntime(218):  at org.stu80.Stu80Activity$1.onItemSelected(Stu80Activity.java:72)
    05-18 10:06:24.085: E/AndroidRuntime(218):  at android.widget.AdapterView.fireOnSelected(AdapterView.java:864)
    05-18 10:06:24.085: E/AndroidRuntime(218):  at android.widget.AdapterView.selectionChanged(AdapterView.java:847)
    05-18 10:06:24.085: E/AndroidRuntime(218):  at android.widget.AdapterView.checkSelectionChanged(AdapterView.java:970)
    05-18 10:06:24.085: E/AndroidRuntime(218):  at android.widget.Spinner.layout(Spinner.java:158)
    05-18 10:06:24.085: E/AndroidRuntime(218):  at android.widget.AbsSpinner.setSelectionInt(AbsSpinner.java:309)
    05-18 10:06:24.085: E/AndroidRuntime(218):  at android.widget.AbsSpinner.setSelection(AbsSpinner.java:285)
    05-18 10:06:24.085: E/AndroidRuntime(218):  at org.stu80.Stu80Activity.display(Stu80Activity.java:62)
    05-18 10:06:24.085: E/AndroidRuntime(218):  at org.stu80.Stu80Activity.jump(Stu80Activity.java:87)
    05-18 10:06:24.085: E/AndroidRuntime(218):  at org.stu80.Stu80Activity$1.onItemSelected(Stu80Activity.java:72)
    05-18 10:06:24.085: E/AndroidRuntime(218):  at android.widg
    05-18 10:06:24.246: D/dalvikvm(218): GC freed 9868 objects / 652552 bytes in 108ms
    05-18 10:06:24.385: D/dalvikvm(218): GC freed 1228 objects / 69136 bytes in 83ms
    05-18 10:06:24.395: I/dalvikvm(218): threadid=7: reacting to signal 3
    05-18 10:06:24.525: I/dalvikvm(218): Wrote stack trace to '/data/anr/traces.txt'
    05-18 10:06:39.185: I/Process(218): Sending signal. PID: 218 SIG: 9
      

  3.   

    http://download.csdn.net/detail/xjl756425616/4312552
    大家帮忙看看这个问题项目,,我才学android3,4天时间吧,所以写不出高深的代码的,,大家来看看,
    找出怎么才能运行正确啊我项目选择的android版本是  2.1
      

  4.   

    android  高手  快来啊。。我觉得会不会是调用同一布局导致的问题???
      

  5.   

    错误类型,堆栈溢出。 
    logcat中显示onitemselected不断被调用,是不是陷入隐性的死循环中了,setselection后,系统执行了onitemselected方法,然后一直在重复