FileDocCategorySizeDatePackage
MyRssReader3.javaAPI DocAndroid 1.5 API7054Wed May 06 22:41:08 BST 2009com.example.codelab.rssexample

MyRssReader3

public class MyRssReader3 extends android.app.Activity

Fields Summary
private ArrayList
mFeeds
android.widget.ListView
mRssList
android.widget.ArrayAdapter
mAdap
private static final int
ADD_ELEMENT_REQUEST
Constructors Summary
Methods Summary
private java.util.ArrayListinitializeList()

      ArrayList<RssItem> list = new ArrayList<RssItem>();
      list.add(new RssItem("http://www.sciam.com/xml/sciam.xml", "Scientific American"));
      list.add(new RssItem("http://newsrss.bbc.co.uk/rss/newsonline_world_edition/front_page/rss.xml", "BBC"));
      list.add(new RssItem("http://feeds.theonion.com/theonion/daily", "The Onion"));
      list.add(new RssItem("http://feeds.engadget.com/weblogsinc/engadget", "Engadget"));
      return list;
    
protected voidonActivityResult(int requestCode, int resultCode, android.content.Intent data)

        if(resultCode == RESULT_OK){
            switch (requestCode){
                case ADD_ELEMENT_REQUEST:
                    RssItem newIt = new RssItem(
                            data.getStringExtra("url").toString(), 
                            data.getStringExtra("title").toString());
                    mAdap.addObject(newIt);
                    mRssList.setSelection(mRssList.getCount() - 1);
                break;
                default:
                    break;
            }
        }
    
public voidonCreate(android.os.Bundle savedInstanceState)


    
       
        super.onCreate(savedInstanceState);
        
        // Load screen layout.
        setContentView(R.layout.main_screen2);
        
       // Populate our list
        mFeeds = initializeList();
        
         // Populate ArrayAdapter and bind it to ListView
        mRssList = (ListView)findViewById(R.id.rssListView);
        mAdap = new RssDataAdapter<RssItem>(this, R.layout.list_element, mFeeds);
        mRssList.setAdapter(mAdap);   
        
        // Set the last selected item.
        // (icicle is only set if this is being restarted).
        if(savedInstanceState != null && savedInstanceState.containsKey("lastIndexItem"))
            mRssList.setSelection(savedInstanceState.getInteger("lastIndexItem"));
    
public booleanonCreateOptionsMenu(android.view.Menu menu)

        // Always call the superclass implementation to 
        // provide standard items.
        super.onCreateOptionsMenu(menu);
        
        menu.add(0, 0, R.string.menu_option_start, null);
        menu.add(0, 1, R.string.menu_option_stop, null);
        menu.add(0, 2, R.string.menu_option_add, null);
        menu.add(0, 3, R.string.menu_option_delete, null);
        menu.add(0, 4, R.string.menu_option_update, null);
        
        return true;
    
public booleanonOptionsItemSelected(Menu.Item item)

        super.onOptionsItemSelected(item);
        
        switch (item.getId()){
            case 0:     // Start service
                showAlert(null, "You clicked 'start'!", "ok", null, false, null);
                break;
            case 1:    // Stop service
                showAlert(null, "You clicked stop!", "ok", null, false, null);
                break;
            case 2:     // Add Item
                Intent addIntent = new Intent(AddRssItem.class);

                // Use an ID so that if we create a "remove item" form we
                // can tell which form is returning a value.
                startActivityForResult(addIntent, ADD_ELEMENT_REQUEST);
                break;
            case 3:     // Delete item.
                if(mRssList.hasFocus()){
                    Object selectedItem = mRssList.getSelectedItem();
                    mAdap.removeObject(mRssList.getSelectedItem());
                }
                break;
            case 4:    // Update all
                showAlert(null, "You clicked 'Update'!", "ok", null, false, null);
                break;
            default:
                showAlert(null, "I have no idea what you clicked!", "ok", null, false, null);
                break;
        }
        return true;
    
public booleanonPrepareOptionsMenu(android.view.Menu menu)

        return true;
    
protected voidonSaveInstanceState(android.os.Bundle outState)

        int index = mRssList.getSelectedItemIndex();
        if(index > -1){
            outState.putInteger("lastIndexItem", index);     
        }