Users Online

· Guests Online: 92

· Members Online: 0

· Total Members: 188
· Newest Member: meenachowdary055

Forum Threads

Newest Threads
No Threads created
Hottest Threads
No Threads created

Latest Articles

048 Java Android Program to Parse Xml Using Dom Parser

Now the Xml that appears in the console we actually have to download and parse in our code so that we can have our activity show us the live stocks .

Below is the Xml file that appears in the Console –

<?xml version="1.0" encoding="UTF-8"?>
<query xmlns:yahoo="http://www.yahooapis.com/v1/base.rng"
    yahoo:count="1" yahoo:created="2013-07-18T17:45:46Z" yahoo:lang="en-US">
    <results>
        <quote symbol="MSFT">
            <AverageDailyVolume>49993000</AverageDailyVolume>
            <Change>-0.366</Change>
            <DaysLow>35.34</DaysLow>
            <DaysHigh>35.89</DaysHigh>
            <YearLow>26.26</YearLow>
            <YearHigh>36.43</YearHigh>
            <MarketCapitalization>295.4B</MarketCapitalization>
            <LastTradePriceOnly>35.374</LastTradePriceOnly>
            <DaysRange>35.34 - 35.89</DaysRange>
            <Name>Microsoft Corpora</Name>
            <Symbol>MSFT</Symbol>
            <Volume>22859948</Volume>
            <StockExchange>NasdaqNM</StockExchange>
        </quote>
    </results>
</query>

Main Activity

 
package com.example.stockquote;
 
import java.util.Arrays;
 
import android.net.Uri;
import android.os.Bundle;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.inputmethod.InputMethodManager;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TableLayout;
import android.widget.TableRow;
import android.widget.TextView;
 
public class MainActivity extends Activity implements OnClickListener {
 
    public final static String STOCK_SYMBOL = "com.example.stockquotes.STOCK";
 
    private SharedPreferences stockSymbolsEntered;
 
    private TableLayout stockTableScrollView;
 
    private EditText stockSymbolEditText;
    Button enterStockSymbol;
    Button deleteStocksdata;
 
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
 
        stockSymbolsEntered = getSharedPreferences("stockList", MODE_PRIVATE);
 
        stockTableScrollView = (TableLayout) findViewById(R.id.stockTableScrollView);
        stockSymbolEditText = (EditText) findViewById(R.id.stockSymbolEditText);
        enterStockSymbol = (Button) findViewById(R.id.enterStockSymbolButton);
        deleteStocksdata = (Button) findViewById(R.id.deleteStocksButton);
 
        enterStockSymbol.setOnClickListener(this);
        deleteStocksdata.setOnClickListener(this);
 
        updateSavedStockList(null);
    }
 
    private void updateSavedStockList(String newStockSymbol) {
 
        String[] stocks = stockSymbolsEntered.getAll().keySet()
                .toArray(new String[0]);
        Arrays.sort(stocks, String.CASE_INSENSITIVE_ORDER);
 
        if (newStockSymbol != null) {
            insertStockInScrollView(newStockSymbol,
                    Arrays.binarySearch(stocks, newStockSymbol));
 
        } else {
            for (int i = 0; i < stocks.length; ++i) {
 
                insertStockInScrollView(stocks[i], i);
 
            }
 
        }
 
    }
 
    private void saveStockSymbol(String newstock) {
        String isTheStockNew = stockSymbolsEntered.getString(newstock, null);
 
        SharedPreferences.Editor preferencesEditor = stockSymbolsEntered.edit();
        preferencesEditor.putString(newstock, newstock);
        preferencesEditor.apply();
 
        if (isTheStockNew == null) {
            updateSavedStockList(newstock);
        }
 
    }
 
    private void insertStockInScrollView(String stock, int arrayIndex) {
 
        LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        View newStockRow = inflater.inflate(R.layout.stock_quote_row, null);
 
        TextView newStockTextView = (TextView) newStockRow
                .findViewById(R.id.stockSymbolTextView);
 
        newStockTextView.setText(stock);
 
        Button stockQuoteButton = (Button) newStockRow
                .findViewById(R.id.stockQuoteButton);
        stockQuoteButton.setOnClickListener(getStockActivityListener);
 
        Button quoteFromWebButton = (Button) newStockRow
                .findViewById(R.id.quoteFromWebButton);
        quoteFromWebButton.setOnClickListener(getStockFromWebsiteListener);
 
        stockTableScrollView.addView(newStockRow, arrayIndex);
 
    }
 
    private void deleteAllStocks() {
        stockTableScrollView.removeAllViews();
    }
 
    public OnClickListener getStockFromWebsiteListener = new OnClickListener() {
 
        public void onClick(View v) {
 
            TableRow tableRow = (TableRow) v.getParent();
            TextView stockTextView = (TextView) tableRow
                    .findViewById(R.id.stockSymbolTextView);
            String stockSymbol = stockTextView.getText().toString();
            String stockURL = getString(R.string.yahoo_stock_url) + stockSymbol;
 
            Intent getStockWebPage = new Intent(Intent.ACTION_VIEW,
                    Uri.parse(stockURL));
 
            startActivity(getStockWebPage);
 
        }
 
    };
 
    public OnClickListener getStockActivityListener = new OnClickListener() {
 
        public void onClick(View v) {
 
            TableRow tableRow = (TableRow) v.getParent();
            TextView stockTextView = (TextView) tableRow
                    .findViewById(R.id.stockSymbolTextView);
            String stockSymbol = stockTextView.getText().toString();
            Intent intent = new Intent(MainActivity.this,
                    StockInfoActivity.class);
 
            intent.putExtra(STOCK_SYMBOL, stockSymbol);
 
            startActivity(intent);
 
        }
 
    };
 
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }
 
    @Override
    public void onClick(View arg0) {
        // TODO Auto-generated method stub
 
        switch (arg0.getId()) {
        case R.id.enterStockSymbolButton:
            if (stockSymbolEditText.getText().length() > 0) {
 
                saveStockSymbol(stockSymbolEditText.getText().toString());
 
                stockSymbolEditText.setText(""); // Clear EditText box
 
                InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
                imm.hideSoftInputFromWindow(
                        stockSymbolEditText.getWindowToken(), 0);
            } else {
 
                // Create an alert dialog box
                AlertDialog.Builder builder = new AlertDialog.Builder(
                        MainActivity.this);
 
                builder.setTitle(R.string.invalid_stock_symbol);
                builder.setMessage(R.string.missing_stock_symbol);
                AlertDialog theAlertDialog = builder.create();
                theAlertDialog.show();
 
            }
            break;
 
        case R.id.deleteStocksButton:
            deleteAllStocks();
 
            SharedPreferences.Editor preferencesEditor = stockSymbolsEntered
                    .edit();
            preferencesEditor.clear();
            preferencesEditor.apply();
 
            break;
        }
    }
}

Comments

No Comments have been Posted.

Post Comment

Please Login to Post a Comment.

Ratings

Rating is available to Members only.

Please login or register to vote.

No Ratings have been Posted.
Render time: 0.78 seconds
10,824,340 unique visits