I would like to link java class to my xml file. There is no error in the coding however, it gave me force close. I would like to know what's wrong with it. Can anyone please advice me?
I've one main java class, having the same code as this, as I would like to display the same thing for both xml layout. The main java class work perfectly fine, however, when I try to convert the coding to second java class, the force close error occurs.
Here is my coding.
public class event extends ListActivity{ ArrayList<String> psi; public TextView psi_text; TextView weather; ImageView image; private static Handler mHandler = new Handler(); class MyWeather{ String conditiontext; String conditiontemp; String conditiondate; public String forecastToString(){ return conditiontext + "\n" + " " + conditiontemp + "?C" ; } } String[] Category = { "Scientist for a day", "Science Trail", "Megalog Return" }; String [] dates = { "Today", "Tomorrow", "This Week" }; Spinner s1; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.event); weather = (TextView)findViewById(R.id.weather); image = (ImageView)findViewById(R.id.image); psi = new ArrayList<String>(); psi_text = (TextView) findViewById(R.id.psi_text); TabHost th =(TabHost)findViewById(R.id.tabhost); th.setup(); TabSpec specs = th.newTabSpec("tag1"); specs.setContent(R.id.tab1); specs.setIndicator("Suggested"); th.addTab(specs); specs = th.newTabSpec("tag2"); specs.setContent(R.id.tab2); specs.setIndicator("All"); th.addTab(specs); TabWidget tw = (TabWidget) th.findViewById(android.R.id.tabs); View tab1 = tw.getChildTabViewAt(0); TextView tv = (TextView) tab1.findViewById(android.R.id.title); tv.setTextSize(15); tv.setPadding(0, 0, 0, 50); View tab2 = tw.getChildTabViewAt(1); TextView tv1 = (TextView) tab2.findViewById(android.R.id.title); tv1.setTextSize(15); tv1.setPadding(0, 0, 0, 50); //GridView setListAdapter(new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,Category)); //SpinnerView s1 = (Spinner) findViewById(R.id.spinner1); ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,android.R.layout.simple_spinner_item, dates); s1.setAdapter(adapter); s1.setOnItemSelectedListener(new OnItemSelectedListener() { public void onItemSelected(AdapterView<?> arg0,View arg1, int arg2, long arg3) { int index = s1.getSelectedItemPosition(); Toast.makeText(getBaseContext(), "You have seleted item :" + dates[index] , Toast.LENGTH_SHORT).show(); } public void onNothingSelected(AdapterView<?>arg0) {} }); try { URL url = new URL( "http://app2.nea.gov.sg/data/rss/nea_psi.xml"); DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); DocumentBuilder db = dbf.newDocumentBuilder(); Document doc = db.parse(new InputSource(url.openStream())); doc.getDocumentElement().normalize(); NodeList nodeList = doc.getElementsByTagName("item"); for (int i = 0; i < nodeList.getLength(); i++) { Node node = nodeList.item(i); Element fstElmnt = (Element) node; NodeList websiteList = fstElmnt.getElementsByTagName("psi"); Element websiteElement = (Element) websiteList.item(0); websiteList = websiteElement.getChildNodes(); psi.add(""+ ((Node) websiteList.item(0)).getNodeValue()); } } catch (Exception e) { System.out.println("XML Pasing Excpetion = " + e); } String temp = Html.fromHtml(psi.get(0)).toString(); String a[] = temp.split("\\)"); psi_text.setText(""+a[0]+")"); Thread myThread = new Thread(new Runnable(){ @Override public void run() { String weatherString = QueryYahooWeather(); Document weatherDoc = convertStringToDocument(weatherString); final MyWeather weatherResult = parseWeather(weatherDoc); runOnUiThread(new Runnable(){ @Override public void run() { weather.setText(weatherResult.forecastToString()); }}); }}); myThread.start(); } private MyWeather parseWeather(Document srcDoc){ MyWeather myWeather = new MyWeather(); //<yweather:condition.../> Node conditionNode = srcDoc.getElementsByTagName("yweather:condition").item(0); String weatherCode = conditionNode.getAttributes() .getNamedItem("code") .getNodeValue() .toString(); // thunderstorms if(weatherCode.equals("4")){ mHandler.post(new Runnable() { @Override public void run() { // This gets executed on the UI thread so it can safely modify // Views image.setImageResource(R.drawable.thunderstorm); } }); } //isolated thunderstorms else if ( weatherCode.equals("37")) { mHandler.post(new Runnable() { @Override public void run() { image.setImageResource(R.drawable.thunderstorm); } }); } //scattered thunderstorms else if ( weatherCode.equals("38")) { mHandler.post(new Runnable() { @Override public void run() { image.setImageResource(R.drawable.thunderstorm); } }); } //scattered thunderstorms else if ( weatherCode.equals("39")) { mHandler.post(new Runnable() { @Override public void run() { image.setImageResource(R.drawable.thunderstorm); } }); } //thundershowers else if ( weatherCode.equals("45")) { mHandler.post(new Runnable() { @Override public void run() { image.setImageResource(R.drawable.thunderstorm); } }); } //isolated thundershowers else if ( weatherCode.equals("47")) { mHandler.post(new Runnable() { @Override public void run() { image.setImageResource(R.drawable.thunderstorm); } }); } //drizzle else if ( weatherCode.equals("9")) { mHandler.post(new Runnable() { @Override public void run() { image.setImageResource(R.drawable.rainy); } }); } //showers else if ( weatherCode.equals("11")) { mHandler.post(new Runnable() { @Override public void run() { image.setImageResource(R.drawable.rainy); } }); } //showers else if ( weatherCode.equals("12")) { mHandler.post(new Runnable() { @Override public void run() { image.setImageResource(R.drawable.rainy); } }); } //scattered showers else if ( weatherCode.equals("40")) { mHandler.post(new Runnable() { @Override public void run() { image.setImageResource(R.drawable.rainy); } }); } //hail else if ( weatherCode.equals("17")) { mHandler.post(new Runnable() { @Override public void run() { image.setImageResource(R.drawable.hail); } }); } //mixed rain and hail else if ( weatherCode.equals("35")) { mHandler.post(new Runnable() { @Override public void run() { image.setImageResource(R.drawable.hail); } }); } //foggy else if ( weatherCode.equals("20")) { mHandler.post(new Runnable() { @Override public void run() { image.setImageResource(R.drawable.foggy); } }); } //haze else if ( weatherCode.equals("21")) { mHandler.post(new Runnable() { @Override public void run() { image.setImageResource(R.drawable.foggy); } }); } //smoky else if ( weatherCode.equals("22")) { mHandler.post(new Runnable() { @Override public void run() { image.setImageResource(R.drawable.foggy); } }); } //windy else if ( weatherCode.equals("24")) { mHandler.post(new Runnable() { @Override public void run() { image.setImageResource(R.drawable.windy); } }); } //cloudy else if ( weatherCode.equals("26")) { mHandler.post(new Runnable() { @Override public void run() { image.setImageResource(R.drawable.cloudy); } }); } //fair (night) else if ( weatherCode.equals("33")) { mHandler.post(new Runnable() { @Override public void run() { image.setImageResource(R.drawable.cloudy); } }); } //fair (day) else if ( weatherCode.equals("34")) { mHandler.post(new Runnable() { @Override public void run() { image.setImageResource(R.drawable.cloudy); } }); } //partly cloudy else if ( weatherCode.equals("44")) { mHandler.post(new Runnable() { @Override public void run() { image.setImageResource(R.drawable.cloudy); } }); } //mostly cloudy (night) else if ( weatherCode.equals("27")) { mHandler.post(new Runnable() { @Override public void run() { image.setImageResource(R.drawable.night_cloudy); } }); } //partly cloudy (night) else if ( weatherCode.equals("29")) { mHandler.post(new Runnable() { @Override public void run() { image.setImageResource(R.drawable.night_cloudy); } }); } //mostly cloudy (day) else if ( weatherCode.equals("28")) { mHandler.post(new Runnable() { @Override public void run() { image.setImageResource(R.drawable.day_cloudy); } }); } //partly cloudy (day) else if ( weatherCode.equals("30")) { mHandler.post(new Runnable() { @Override public void run() { image.setImageResource(R.drawable.day_cloudy); } }); } //clear(night) else if ( weatherCode.equals("31")) { mHandler.post(new Runnable() { @Override public void run() { image.setImageResource(R.drawable.moon); } }); } //sunny else { mHandler.post(new Runnable() { @Override public void run() { image.setImageResource(R.drawable.sunny); } }); } myWeather.conditiontext = conditionNode.getAttributes() .getNamedItem("text") .getNodeValue() .toString(); myWeather.conditiontemp = conditionNode.getAttributes() .getNamedItem("temp") .getNodeValue() .toString(); return myWeather; } private Document convertStringToDocument(String src){ Document dest = null; DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance(); DocumentBuilder parser; try { parser = dbFactory.newDocumentBuilder(); dest = parser.parse(new ByteArrayInputStream(src.getBytes())); } catch (ParserConfigurationException e1) { e1.printStackTrace(); Toast.makeText(event.this, e1.toString(), Toast.LENGTH_LONG).show(); } catch (SAXException e) { e.printStackTrace(); Toast.makeText(event.this, e.toString(), Toast.LENGTH_LONG).show(); } catch (IOException e) { e.printStackTrace(); Toast.makeText(event.this, e.toString(), Toast.LENGTH_LONG).show(); } return dest; } private String QueryYahooWeather(){ String qResult = ""; String queryString = "http://weather.yahooapis.com/forecastrss?w=1062617&u=c"; HttpClient httpClient = new DefaultHttpClient(); HttpGet httpGet = new HttpGet(queryString); try { HttpEntity httpEntity = httpClient.execute(httpGet).getEntity(); if (httpEntity != null){ InputStream inputStream = httpEntity.getContent(); Reader in = new InputStreamReader(inputStream); BufferedReader bufferedreader = new BufferedReader(in); StringBuilder stringBuilder = new StringBuilder(); String stringReadLine = null; while ((stringReadLine = bufferedreader.readLine()) != null) { stringBuilder.append(stringReadLine + "\n"); } qResult = stringBuilder.toString(); } } catch (ClientProtocolException e) { e.printStackTrace(); Toast.makeText(event.this, e.toString(), Toast.LENGTH_LONG).show(); } catch (IOException e) { e.printStackTrace(); Toast.makeText(event.this, e.toString(), Toast.LENGTH_LONG).show(); } return qResult; } public void onListItemClick(ListView parent, View v, int position,long id) { Toast.makeText(this, "You have selected " + Category[position], Toast.LENGTH_SHORT).show(); } }
Source: http://stackoverflow.com/questions/17895049/link-java-class-to-xml-file-in-android
ohio state girl with the dragon tattoo ohio state basketball collateral dick cheney heart umf elite eight
No comments:
Post a Comment
Note: Only a member of this blog may post a comment.