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;
}
}
}
请问怎么改???高手来解答啊。
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;
}
}
}
请问怎么改???高手来解答啊。
解决方案 »
- android activity类实现了OnScrollListener接口时,listview滑到最低端时报错
- opengl 用什么pack图片啊
- android listview异步记载图片,不卡顿,不图片乱的问题怎么解决?
- 后缀名为 .so的文件怎么编辑?
- 按键不能执行返回键功能却能返回正确的参数
- 关于获取textview中文字width的问题
- onActivityResult 求大神 急急急啊
- Android Logcat显示不完整
- ListView拉到底部时APP自动重启
- 求助!【No package ID ff found for ID 0xffffffff】如何解决
- 关于android BitMap回收的问题
- android中this的用法,求详解,不是很懂,一定要详细哦
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
大家帮忙看看这个问题项目,,我才学android3,4天时间吧,所以写不出高深的代码的,,大家来看看,
找出怎么才能运行正确啊我项目选择的android版本是 2.1
logcat中显示onitemselected不断被调用,是不是陷入隐性的死循环中了,setselection后,系统执行了onitemselected方法,然后一直在重复