开发者

Load XML when click button and show in different layout ANDROID

开发者 https://www.devze.com 2023-03-09 21:21 出处:网络
Still working on my first android app and I have 3 days of Java under my belt. lol Questions: 1. Having issues showing XML data (from net) when the user clicks a button.

Still working on my first android app and I have 3 days of Java under my belt. lol

Questions: 1. Having issues showing XML data (from net) when the user clicks a button. 2. Showing a different layout when the XML is loaded. I dont understand how different screens (layouts) are called/shown. 3. when sharing code on Stackoverflow is it best to post everything on here or use a third party site?

Below is my code it shows no errors after I changed extends Avtivity to extends ListActivity

patriotsar java:

    package com.patriotsar;




import java.util.ArrayList;
import java.util.HashMap;

import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.NodeList;

import com.patriotsar.XMLfunctions;


import android.app.ListActivity;

import android.content.ActivityNotFoundException;
import android.content.Context;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.AdapterView;
import android.widget.Button;
import android.widget.ListAdapter;
import android.widget.ListView;
import android.widget.SimpleAdapter;
import android.widget.Toast;
import android.widget.AdapterView.OnItemClickListener;









public class patriosar extends ListActivity {

    private Button goButton;
    private Button quoteButton;

    String url = "http://www.patriotsar.com";
    Intent i = new Intent(Intent.ACTION_VIEW);
    Uri u = Uri.parse(url);
    Context context = this;



    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);



        goButton = (Button)findViewById(R.id.goButton);
        quoteButto开发者_如何学JAVAn = (Button)findViewById(R.id.quoteButton);

        goButton.setOnClickListener(new OnClickListener() {         
            @Override
            public void onClick(View v){
                try {
                      // Start the activity
                        i.setData(u);
                      startActivity(i);
                    } catch (ActivityNotFoundException e) {
                      // Raise on activity not found
                      Toast.makeText(context, "Browser not found.", Toast.LENGTH_SHORT);
                    }
                  } 
        });

        quoteButton.setOnClickListener(new OnClickListener() {         
            @Override
            public void onClick(View v){
ArrayList<HashMap<String, String>> mylist = new ArrayList<HashMap<String, String>>();


                String xml = XMLfunctions.getXML();
                Document doc = XMLfunctions.XMLfromString(xml);

                int numResults = XMLfunctions.numResults(doc);

                if((numResults <= 0)){
                    Toast.makeText(patriosar.this, "Geen resultaten gevonden", Toast.LENGTH_LONG).show();  
                    finish();
                }

                NodeList nodes = doc.getElementsByTagName("result");

                for (int i = 0; i < nodes.getLength(); i++) {                           
                    HashMap<String, String> map = new HashMap<String, String>();    

                    Element e = (Element)nodes.item(i);
                    map.put("id", XMLfunctions.getValue(e, "id"));
                    map.put("name", "Naam:" + XMLfunctions.getValue(e, "name"));
                    map.put("Score", "Score: " + XMLfunctions.getValue(e, "score"));
                    mylist.add(map);            
                }       
//               
                ListAdapter adapter = new SimpleAdapter(patriosar.this, mylist , R.layout.main, 
                                new String[] { "name", "Score" }, 
                                new int[] { R.id.item_title, R.id.item_subtitle });

                setListAdapter(adapter);

                final ListView lv = getListView();
                lv.setTextFilterEnabled(true);  
                lv.setOnItemClickListener(new OnItemClickListener() {
                    public void onItemClick(AdapterView<?> parent, View view, int position, long id) {              
                        @SuppressWarnings("unchecked")
                        HashMap<String, String> o = (HashMap<String, String>) lv.getItemAtPosition(position);                   
                        Toast.makeText(patriosar.this, "ID '" + o.get("id") + "' was clicked.", Toast.LENGTH_LONG).show(); 

                    }
                });



                }

         });

     }
    }

Below is a link to my eclipse package that contains all of the filesEclipse Package download


I feel the issue is to identify the accurate resource file. Please check what are your import statements whether you are referring to android.R file or com.patriotsar.R. if R.id.item_title is defined by yourself then please use your own R file ie com.patriotsar.R. Also right click on project select build path then selct your android sdk version that you want to support. If possible then can you post your xml also?

Thanks Deepak

0

精彩评论

暂无评论...
验证码 换一张
取 消