메신저로 안드로이드 개발에 익숙하며 정보를 표시하기 위해 온라인으로 생성 된 XML 파일을 찾는 첫 번째 앱을 만들려고합니다. 첫 번째 작업에서는 XML 파일의 모든 항목이 포함 된 ListView를 만든 후 항목을 클릭하자마자 ID를 전달하고 세부 정보가있는 다른 XML 파일에 액세스해야하는 두 번째 활동으로 이동합니다.웹에서 두 번째 XML을 가져 오는 중 오류가 발생했습니다.
java.lang.ClassCastException가 : org.apache.harmony.xml.dom.ElementImpl
어떤 아이디어가 무슨 잘못 자세한 내용은 XML을 가져 오기 위해 시도 할 때 그러나 나는이 오류가 계속 ? 여기
package en.android.itleaked.com;
import java.io.InputStream;
import java.net.URL;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import org.w3c.dom.Document;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import org.xml.sax.InputSource;
import android.app.Activity;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.sax.Element;
import android.widget.ImageView;
import android.widget.TextView;
public class showReleases extends Activity {
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.releasedetails);
getFeed();
}
public void getFeed() {
Bundle extras = getIntent().getExtras();
try {
URL url2 = new URL("http://www.it-leaked.com/app/details.php?id=" + extras.getString("id"));
DocumentBuilderFactory dbf2 = DocumentBuilderFactory.newInstance();
DocumentBuilder db2 = dbf2.newDocumentBuilder();
Document doc2 = db2.parse(new InputSource(url2.openStream()));
doc2.getDocumentElement().normalize();
NodeList nodeList2 = doc2.getElementsByTagName("item");
String relTitle[] = new String[nodeList2.getLength()];
String relCover[] = new String[nodeList2.getLength()];
for (int i = 0; i < nodeList2.getLength(); i++) {
Node node2 = nodeList2.item(i);
Element fstElmnt2 = (Element) node2;
NodeList nameList2 = ((Document) fstElmnt2).getElementsByTagName("title");
Element nameElement2 = (Element) nameList2.item(0);
nameList2 = ((Node) nameElement2).getChildNodes();
relTitle[i] = ((Node) nameList2.item(0)).getNodeValue();
NodeList coverList2 = ((Document) fstElmnt2).getElementsByTagName("cover");
Element coverElement2 = (Element) coverList2.item(0);
coverList2 = ((Node) coverElement2).getChildNodes();
relCover[i] = ((Node) coverList2.item(0)).getNodeValue();
}
TextView txtView = (TextView)findViewById(R.id.TextView01);
txtView.setText(relTitle[0]);
ImageView imgView =(ImageView)findViewById(R.id.ImageView01);
Drawable drawable = LoadImageFromWebOperations(relCover[0]);
imgView.setImageDrawable(drawable);
}
catch (Exception e) {
TextView txtView2 = (TextView)findViewById(R.id.TextView02);
txtView2.setText("Error: " + e);
}
}
private Drawable LoadImageFromWebOperations(String url)
{
try
{
InputStream is = (InputStream) new URL(url).getContent();
Drawable d = Drawable.createFromStream(is, "src name");
return d;
}catch (Exception e) {
System.out.println("Exc="+e);
return null;
}
}
}
부착 된 ID와 XML에 대한 URL은 그래서 당신이 어떻게 생겼는지 볼 수 있습니다 : 세드릭 http://www.it-leaked.com/app/details.php?id=50969
모든 아이디어를 여기에 "세부 사항"활동에 대한 소스는? 그런데 XML 파싱과 관련된 모든 변수에 숫자 2를 추가 했으므로 다른 활동과의 충돌은 없지만 여전히 동일한 오류가 발생합니다. 당신이 나를 도울 수 있기를 바랍니다. 아웃. 미리 감사드립니다.
엄지 규칙 : 항상 오류에 대한 가장 유용한 정보를 제공해주십시오. 귀하의 경우에는 오류 스택 추적을 표시하지 않았습니다. 코드 복사 및 붙여 넣기, 컴파일 및 실행을 기대하는 대신 오류가 발생한 위치와 줄의 위치를보다 쉽게 파악할 수 있다고 생각하십니까? – darioo
안녕하세요, 먼저 답장을 보내 주셔서 감사합니다. 스택 추적으로 무엇을 의미하는지 모르겠습니다. 내가 디버그를 클릭했는데,하지만 어떤 오류 메시지를주고 이클립스 콘솔은, 나는 잡기 (예외 전자)를 통해 오류 메시지를 가지고 .. 사전에 감사드립니다 Logged – robs