नहीं बना सकता है, मैं बस सरल एक्सएमएल के साथ एंड्रॉइड डेवलपमेंट के साथ प्रयोग करना शुरू कर रहा हूं और सोचा कि जब तक मैं एक झटके मारता हूं तब तक यह काफी अच्छा चल रहा था। नीचे दिए गए कोड कीSimpleXML कन्स्ट्रक्टर अपवाद - इनर क्लास
डब्ल्यू/System.err एक अपवाद पैदा करता है (665): org.simpleframework.xml.core.ConstructorException: भीतरी वर्ग का निर्माण नहीं किया जा सकता
मैं प्रश्नों के माध्यम से देखा है आंतरिक कक्षाओं पर और मुझे लगता है कि मैं समझता हूं कि आप उनका उपयोग क्यों करेंगे (नहीं कि मेरा जरूरी जानबूझकर था) लेकिन उपयोग करने और उपयोग से बचने के लिए मेरे कोड राउंड को ले जाने के बावजूद मैं अभी भी थोड़ा फंस गया हूं और किसी भी मदद की सराहना करता हूं।
स्रोत कोड:
public class InCaseOfEmergencyMedAlertAllergiesActivity extends Activity {
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
Serializer serializer = new Persister();
InputStream xmlstream = this.getResources().openRawResource(R.raw.sample_data_allergies);
try {
medalertdata allergyObject = serializer.read(medalertdata.class, xmlstream);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
setContentView(R.layout.allergies);
}
@Root
public class medalertdata {
@ElementList
private List<allergy> allergyList;
public List getAllergies() {
return allergyList;
}
}
@Root
public class allergy{
@Element
private String to;
@Element
private Boolean medical;
@Element
private String notes;
public allergy(String to, Boolean medical, String notes){
this.to = to;
this.medical = medical;
this.notes = notes;
}
public String getTo() {
return to;
}
public Boolean getMedical() {
return medical;
}
public String getNotes() {
return notes;
}
}
} एक्सएमएल फ़ाइल के साथ
संरचित संदर्भित के रूप में:
<?xml version="1.0" encoding="ISO-8859-1"?>
<medalertdata>
<allergy>
<to>Penicillin</to>
<medical>true</medical>
<notes></notes>
</allergy>
<allergy>
<to>Bee Stings</to>
<medical>false</medical>
<notes>Sample</notes>
</allergy>
</medalertdata>
कैसे मैं SimpleXML कक्षाएं टिप्पणी किए गए या मैं कहाँ कोशिश कर रहा हूँ के साथ समस्या यह है उन्हें पढ़ने के लिए? धन्यवाद!
उत्तर के लिए धन्यवाद। दुर्भाग्यवश @ रूट नोटेशन को हटाने से कोई प्रभाव नहीं पड़ा। वर्तमान में दोनों वर्गों को गतिविधि वर्ग के भीतर घोषित किया गया है (क्रिएट) को बंद कर दिया गया है - क्या वे अलग-अलग फाइलों में हो सकते हैं? – Rory
हां, जावा में सभी सामान्य सार्वजनिक कक्षाएं अपनी फ़ाइल में घोषित की जानी चाहिए। एक और विकल्प उन्हें 'स्थैतिक' बनाना होगा (यह नहीं पता कि SimpleXML कैसे इसे संभालता है)। –
उन्हें एक ही फाइल में रखना निश्चित रूप से समस्या थी =) – Rory