[英]Android SimpleAdapter.ViewBinder is not working while getting data from XML Parsing
My code as follows: 我的代码如下:
ArrayList<HashMap<String, String>> mylist = new ArrayList<HashMap<String, String>>();
String xml = ParseXMLMethods.getXML();
Document doc = ParseXMLMethods.XMLfromString(xml);
NodeList children = doc.getElementsByTagName(KEY_ITEM);
for (int i = 0; i < children.getLength(); i++)
{
HashMap<String, String> map = new HashMap<String, String>();
Element e = (Element)children.item(i);
map.put("PID", ParseXMLMethods.getValue(e, KEY_ID));
map.put("Passionname", ParseXMLMethods.getValue(e, KEY_TITLE));
map.put("Progress", ParseXMLMethods.getValue(e,KEY_PROGRESS));
Log.d("Progress",ParseXMLMethods.getValue(e,KEY_PROGRESS));
map.put("Duedate", ParseXMLMethods.getValue(e, KEY_DUEDATE));
map.put("Action", ParseXMLMethods.getValue(e, KEY_ACTION));
mylist.add(map);
}
adapter = new SimpleAdapter(getBaseContext(), mylist , R.layout.row,
new String[] { KEY_TITLE,KEY_PROGRESS,KEY_DUEDATE,KEY_ACTION},
new int[] {R.id.txt,R.id.progress, R.id.FROM_CELL, R.id.del_btn})
{
@Override
public View getView(int position, View convertView, ViewGroup parent)
{
return itemView;
}
};
adapter.setViewBinder(new MyBinder());
list.setAdapter(adapter);
list.setItemsCanFocus(true);
My ViewBinder class as follows: 我的ViewBinder类如下:
class MyBinder implements ViewBinder{
@Override
public boolean setViewValue(View view, Object data, String textRepresentation) {
if(view.getId() == R.id.progress){
String stringval = (String) data;
int progressValue = Integer.parseInt(stringval);
ProgressBar progressbar = (ProgressBar) view;
progressbar.setProgress(progressValue);
Resources res = getResources();
Rect bounds = progressbar.getProgressDrawable().getBounds();
if(progressValue==100)
{
progressbar.setProgressDrawable(res.getDrawable(R.drawable.red_progressbar));
}
else
{
progressbar.setProgressDrawable(res.getDrawable(R.drawable.green_progreesbar));
}
progressbar.getProgressDrawable().setBounds(bounds);
return true;
}
return false;
}
}
whenever run above code got the below errors: 每当运行以上代码时,都会出现以下错误:
12-01 04:55:37.162: E/AndroidRuntime(3478): java.lang.NumberFormatException: Invalid int: "50 " 12-01 04:55:37.162: E/AndroidRuntime(3478): at java.lang.Integer.invalidInt(Integer.java:137) 12-01 04:55:37.162: E/AndroidRuntime(3478): at java.lang.Integer.parse(Integer.java:374) 12-01 04:55:37.162:E / AndroidRuntime(3478):java.lang.NumberFormatException:无效的int:“ 50” 12-01 04:55:37.162:E / AndroidRuntime(3478):在java.lang.Integer .invalidInt(Integer.java:137)12-01 04:55:37.162:E / AndroidRuntime(3478):at java.lang.Integer.parse(Integer.java:374)
but this code run successfully while using a static array for my Progress bar.Please help me... 但是此代码在为进度栏使用静态数组时成功运行了。请帮助我...
这里的问题出在以下无效int给出的XML文件的数据中:“ 50”。在我的xml文件中,在50之后存在一个空格,这就是为什么我出错了。我为此问题浪费了3个小时。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.