1 | EditText formNumber = (EditText) findViewById(R.id.formNumber); |
1 | Log.i(tag,"Attempting to process Form # [" + formNumber.getText().toString() + "]"); |
1 | Intent newFormInfo = new Intent(XmlGui.this,RunForm.class); |
1 | newFormInfo.putExtra("formNumber", formNumber.getText().toString()); |
1 | startActivity(newFormInfo); |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 | public class RunForm extends Activity { /** Called when the activity is first created. */ String tag = RunForm.class.getName(); XmlGuiForm theForm; ProgressDialog progressDialog; Handler progressHandler; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); String formNumber = ""; Intent startingIntent = getIntent(); if(startingIntent == null) { Log.e(tag,"No Intent? We're not supposed to be here..."); finish(); return; } formNumber = startingIntent.getStringExtra("formNumber"); Log.i(tag,"Running Form [" + formNumber + "]"); if (GetFormData(formNumber)) { DisplayForm(); } else { Log.e(tag,"Couldn't parse the Form."); AlertDialog.Builder bd = new AlertDialog.Builder(this); AlertDialog ad = bd.create(); ad.setTitle("Error"); ad.setMessage("Could not parse the Form data"); ad.show(); } } // other methods omitted and shown later } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 | private boolean GetFormData(String formNumber) { try { Log.i(tag,"ProcessForm"); URL url = new URL("http://www.example.com/xmlgui" + formNumber + ".xml"); Log.i(tag,url.toString()); InputStream is = url.openConnection().getInputStream(); DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); DocumentBuilder db = factory.newDocumentBuilder(); Document dom = db.parse(is); Element root = dom.getDocumentElement(); NodeList forms = root.getElementsByTagName("form"); if (forms.getLength() < 1) { // nothing here?? Log.e(tag,"No form, let's bail"); return false; } Node form = forms.item(0); theForm = new XmlGuiForm(); // process form level NamedNodeMap map = form.getAttributes(); theForm.setFormNumber(map.getNamedItem("id").getNodeValue()); theForm.setFormName(map.getNamedItem("name").getNodeValue()); if (map.getNamedItem("submitTo") != null) theForm.setSubmitTo(map.getNamedItem("submitTo").getNodeValue()); else theForm.setSubmitTo("loopback"); // now process the fields NodeList fields = root.getElementsByTagName("field"); for (int i=0;i<fields.getLength();i++) { Node fieldNode = fields.item(i); NamedNodeMap attr = fieldNode.getAttributes(); XmlGuiFormField tempField = new XmlGuiFormField(); tempField.setName(attr.getNamedItem("name").getNodeValue()); tempField.setLabel(attr.getNamedItem("label").getNodeValue()); tempField.setType(attr.getNamedItem("type").getNodeValue()); if (attr.getNamedItem("required").getNodeValue().equals("Y")) tempField.setRequired(true); else tempField.setRequired(false); tempField.setOptions(attr.getNamedItem("options").getNodeValue()); theForm.getFields().add(tempField); } Log.i(tag,theForm.toString()); return true; } catch (Exception e) { Log.e(tag,"Error occurred in ProcessForm:" + e.getMessage()); e.printStackTrace(); return false; } } |
1 | URL url = new URL("http://10.211.55.2/~fableson/xmlgui" + formNumber + ".xml"); |
欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) | Powered by Discuz! 7.0.0 |