Во-первых, пожалуйста, проверьте URL * http://mobileecommerce.site247365.com/admin/catdata.xml в * Google Chrome. Я столкнулся с двумя проблемами 1. Для второго cat_desc из XML, имеющих cat_name E п I сентября не показывая на WebView .Я думаю, что это происходит потому, что в его cat_desc содержит % знак на первой строке в таблице стилей тег < "таблица стиль =" граница коллапс: коллапс, ширина : 100%;»> Как игнорировать знак%cat_desc тег не может быть разобрано completlly и не показывая properlly в WebView
проблемы .Second является то, что из последнего thrid тега с cat_name Раздаточных создают проблемы при анализе cat_desc. Он не будет разбираться полностью, его последние три строки не анализируются. Я также проверю его в журнале, но последние три строки не являются paresd.Почему это так? Для других cat_desc разбираются очень хорошо и хорошо работают в webview.
public class FirstActivity extends ListActivity implements OnItemClickListener {
/** called when the activity is first created. */
String[] cat_name=null;
String[] cat_desc=null;
ListView optionslist=null;
NewsListAdapter adapter=null;
ArrayList<NewsItem> getArray=null;
ArrayAdapter<String> arrayadapter=null;
HashMap<String, String> hashamp=null;
public static final String url="http://mobileecommerce.site247365.com/admin/catdata.xml";
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
innitializeUIComponents();
new RefreshArrayFromInternet().execute(url);
}
public void onItemClick(AdapterView<?> arg0, View arg1, int position, long arg3) {
Log.v("in position", ""+position);
String str=new String(getArray.get(position).getCatdesc());
Log.v("on item click desc", str);
Intent intent=new Intent(FirstActivity.this, WebviewActivity.class);
intent.putExtra("str",str);
startActivity(intent);
}
private void innitializeUIComponents()
{
optionslist=getListView();
optionslist.setOnItemClickListener(this);
}
private class RefreshArrayFromInternet extends AsyncTask<String,Void,ArrayList<NewsItem>>
{
@Override
protected ArrayList<com.example.vidushi.NewsItem> doInBackground(
String... params) {
Log.v("Thread started","parsing thread has started!!!");
final ArrayList<NewsItem> newsList=new ArrayList<NewsItem>();
try
{
URL urlexec=new URL(params[0]);
URLConnection connection=urlexec.openConnection();
InputStream input=connection.getInputStream();
SAXParserFactory factory=SAXParserFactory.newInstance();
SAXParser parser=factory.newSAXParser();
parser.parse(input,new DefaultHandler(){
boolean itemTagStarted=false;
String currentTag="";
StringBuffer buffer;
NewsItem item=null;
@Override
public void startDocument() throws SAXException {
Log.v("parsing started!!!","parsing started!!!");
}
@Override
public void startElement(String uri, String localName,String qName, Attributes attributes)
throws SAXException {
currentTag=localName;
Log.v("in start elelmet", "in start elelmet");
if(qName.equals("Table"))
{
buffer=new StringBuffer();
itemTagStarted=true;
item=new NewsItem();
}
}
@Override
public void characters(char[] ch, int start, int length)
throws SAXException {
if(itemTagStarted)
{
if(currentTag.equals("Cat_Name"))
{
item.setCatname(String.valueOf(ch,start,length));
}
if(currentTag.equals("Cat_id"))
{
item.setCatid(String.valueOf(ch,start,length));
}
if(currentTag.equals("Cat_Desc"))
{
buffer.append(String.valueOf(ch,start,length));
}
}
}
@Override
public void endElement(String uri, String localName,
String qName) throws SAXException {
currentTag="";
if(qName.equals("Table"))
{
itemTagStarted=false;
newsList.add(item);
}
if(qName.equals("Cat_Desc"))
{
item.setCatdesc(buffer.toString());
Log.v("Description data",buffer.toString());
}
}
@Override
public void endDocument() throws SAXException {
Log.v("parsing completed","parsing completed : array size : "+newsList.size());
}
});
}
catch(Exception ex)
{
ex.printStackTrace();
}
return newsList;
}
@Override
protected void onPostExecute(ArrayList<NewsItem> result) {
super.onPostExecute(result);
getArray=result;
if(result.size()==0)
{
Toast.makeText(FirstActivity.this,"There is some problem with the internet connection or the specified url!!!",Toast.LENGTH_LONG).show();
}
String[] array=new String[result.size()];
cat_desc=new String[result.size()];
Log.v("resukt size",""+result.size());
for(int i=0;i<result.size();i++)
{
array[i]=result.get(i).getCatname();
}
arrayadapter=new ArrayAdapter<String>(FirstActivity.this,android.R.layout.simple_list_item_1,array);
optionslist.setAdapter(arrayadapter);
}
}