我得到的数据形成这样的XML文件: -获得空指针异常错误
<posts>
<page id="1">
<title>
<![CDATA[ Tile no. 1 ]]>
</title>
<smallimage>
http://www.xyz.com/right.jpg
</smallimage>
</page>
<page id="2">
<title>
<![CDATA[ Tile no. 2 ]]>
</title>
</page>
<page id="3">
<title>
<![CDATA[ Tile no. 3 ]]>
</title>
<smallimage>
http://www.xyz.com/left.jpg
</smallimage>
</page>
</posts>
这是我的XML的例子,其中我越来越元素,我得到第10页其中存在10个而不是10个的单个url被预设。它可能是3或6或1.
在我的代码我使用SAX解析器来解析这个XML文件我得到我的数据,并能够显示在列表视图,但我能够显示图像与他们。
用于显示图像我使用LazlyList示例(ImageLoader类)。
这里是我下面的代码: -
MainActivity.java
public class MainActivity extends Activity {
/** Called when the activity is first created. */
static final String URL = "http://www.xyz.com/api.php?page_id=1";
ItemList itemList;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
XMLParser parser = new XMLParser();
String XML = parser.getXmlFromUrl(URL);
System.out.println("This XML is ========>"+XML);
try
{
SAXParserFactory spf = SAXParserFactory.newInstance();
SAXParser sp = spf.newSAXParser();
XMLReader xr = sp.getXMLReader();
/** Create handler to handle XML Tags (extends DefaultHandler) */
MyXMLHandler myXMLHandler = new MyXMLHandler();
xr.setContentHandler(myXMLHandler);
ByteArrayInputStream is = new ByteArrayInputStream(XML.getBytes());
xr.parse(new InputSource(is));
}
catch(Exception e)
{
}
itemList = MyXMLHandler.itemList;
ArrayList<String> listItem= itemList.getTitle();
ArrayList<String> listManu = itemList.getSmallimages();
System.out.println("(ListItem)=======>"+listItem);
System.out.println("(ListManu)=======>"+listManu);
// String ar[];
Object obj[]=listManu.toArray();
String[] stringArray=Arrays.asList(obj).toArray(new String[obj.length]);
System.out.println("Array to String"+Arrays.toString(stringArray));
// ar=(String[]) listManu.toArray();
ListView lview = (ListView) findViewById(R.id.listview1);
myAdapter adapter = new myAdapter(this, listItem, stringArray);
lview.setAdapter(adapter);
}
myAdapter.java
public class myAdapter extends BaseAdapter
{
ArrayList<String> listTitle;
String [] data;
ImageLoader imageLoader;
Activity activity;
public myAdapter(Activity activity, ArrayList<String> listTitle, String[] d) {
super();
this.listTitle = listTitle;
this.data = d;
this.activity = activity;
this.imageLoader = new ImageLoader(activity.getApplicationContext());
}
public int getCount() {
// TODO Auto-generated method stub
return data.length;
}
public Object getItem(int position) {
// TODO Auto-generated method stub
return null;
}
public long getItemId(int position) {
// TODO Auto-generated method stub
return 0;
}
private class ViewHolder
{
TextView txtViewTitle;
ImageView image;
}
public View getView(int position, View view, ViewGroup parent) {
// TODO Auto-generated method stub
ViewHolder title;
LayoutInflater inflater = activity.getLayoutInflater();
if(view==null)
{
view = inflater.inflate(R.layout.lview_row, null);
title = new ViewHolder();
title.txtViewTitle = (TextView) view.findViewById(R.id.txtItem);
title.image = (ImageView) view.findViewById(R.id.list_image);
view.setTag(title);
}
else
{
title = (ViewHolder) view.getTag();
}
title.txtViewTitle.setText(listTitle.get(position));
imageLoader.DisplayImage(data[position], title.image);
return view;
}
}
\
当我使用回报data.length然后我得到的图像和瓷砖没有。图像的存在,因为字符串[]是存储图像仅不是空格...
public int getCount() {
return data.length;
但是当我改变data.length到listTitle.size()
public int getCount() {
return listTitle.size();
得到空指针异常我使用listTilte.size(),因为它给出了全部列表...
任何一个PLZ建议我怎么能我能解决在列表视图这个问题,并获取图像和完整的标题数据和图像的地方是目前只有我才会得到带有标题的图像,否则只有标题显示y在列表视图中...
Thanks in Advanced。
“获取空指针异常错误”在哪里? – zapl 2012-04-23 08:19:34
hi zapl ...我更新我的问题PLZ看看谢谢... – user755278 2012-04-23 08:32:54
2评论。首先,不要在没有线程的情况下使用httpconnection,而在OnCreate方法中使用最差的<----非常非常糟糕。其次,使用Log.d(“TAG”,文本)而不是系统println – Aracem 2012-04-23 08:37:34