Advertisement
Guest User

yearspinner

a guest
Feb 23rd, 2017
69
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 4.61 KB | None | 0 0
  1. package ser210.quinnipiac.edu.numbersapp;
  2.  
  3. import android.app.Activity;
  4. import android.content.Intent;
  5. import android.os.AsyncTask;
  6. import android.os.Bundle;
  7. import android.util.Log;
  8. import android.view.View;
  9. import android.widget.AdapterView;
  10. import android.widget.ArrayAdapter;
  11. import android.widget.Spinner;
  12.  
  13. import java.io.BufferedReader;
  14. import java.io.IOException;
  15. import java.io.InputStream;
  16. import java.io.InputStreamReader;
  17. import java.net.HttpURLConnection;
  18. import java.net.URL;
  19.  
  20. public class YearSpinnerActivity extends Activity {
  21.  
  22.     private final String LOG_TAG = YearSpinnerActivity.class.getSimpleName();
  23.     // Will contain the raw JSON response as a string.
  24.     String yearFactJsonStr = null;
  25.  
  26.     YearsHandler yrHandler = new YearsHandler();
  27.  
  28.     boolean userSelect = false;
  29.  
  30.     public void onCreate(Bundle savedInstanceState) {
  31.         super.onCreate(savedInstanceState);
  32.         setContentView(R.layout.activity_number_spinner);
  33.  
  34.         Spinner spinner = (Spinner)findViewById(R.id.spinner);
  35.  
  36.  
  37.         ArrayAdapter<String> yearsAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item,yrHandler.years);
  38.  
  39.         yearsAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
  40.  
  41.         spinner.setAdapter(yearsAdapter);
  42.  
  43.         spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
  44.             @Override
  45.             public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
  46.  
  47.                 if (userSelect) {
  48.                     final String item = (String) parent.getItemAtPosition(position);
  49.                     Log.i("onItemSelected :year", item);
  50.  
  51.                     new FetchYearFact().execute(item);
  52.  
  53.                     userSelect = false;
  54.                 }
  55.  
  56.             }
  57.  
  58.             @Override
  59.             public void onNothingSelected(AdapterView<?> parent) {
  60.  
  61.             }
  62.         });
  63.     }
  64.  
  65.     @Override
  66.     public void onUserInteraction() {
  67.         super.onUserInteraction();
  68.         userSelect = true;
  69.  
  70.     }
  71.     private class FetchYearFact extends AsyncTask<String,Void,String>{
  72.  
  73.         @Override
  74.         protected String doInBackground(String... params) {
  75.  
  76.             HttpURLConnection urlConnection =null;
  77.             BufferedReader reader =null;
  78.             String yearFact = null;
  79.  
  80.             try {
  81.                 URL url = new URL("https://numbersapi.p.mashape.com/" + params[0]
  82.                         + "/year?mashape-key=4U2zJVYcolmshgYM4RCZiw861hoXp1wiaYzjsn9BF1VW7wx349&json=true");
  83.  
  84.                 urlConnection = (HttpURLConnection) url.openConnection();
  85.                 urlConnection.setRequestMethod("GET");
  86.                 urlConnection.connect();
  87.  
  88.                 InputStream in = urlConnection.getInputStream();
  89.                 if (in == null) {
  90.                     return null;
  91.                 }
  92.                  reader  = new BufferedReader(new InputStreamReader(in));
  93.                 // call getBufferString to get the string from the buffer.
  94.  
  95.                 String yearFactJsonString = getBufferStringFromBuffer(reader).toString();
  96.  
  97.                 // call a method to parse the json data and return a string.
  98.                yearFact=  yrHandler.getYearFact(yearFactJsonString);
  99.  
  100.             }catch(Exception e){
  101.                 Log.e(LOG_TAG,"Error" + e.getMessage());
  102.                 return null;
  103.             }finally{
  104.                 if (urlConnection != null){
  105.                     urlConnection.disconnect();
  106.                 }
  107.                 if (reader != null){
  108.                     try{
  109.                         reader.close();
  110.                     }catch (IOException e){
  111.                         Log.e(LOG_TAG,"Error" + e.getMessage());
  112.                         return null;
  113.                     }
  114.                 }
  115.             }
  116.  
  117.             return yearFact;
  118.         }
  119.  
  120.         protected void onPostExecute(String result){
  121.             if (result != null){
  122.                 Log.d(LOG_TAG, result);
  123.  
  124.                 Intent intent = new Intent(YearSpinnerActivity.this,YearFactActivity.class);
  125.                 intent.putExtra("yearfact",result);
  126.  
  127.                 startActivity(intent);
  128.  
  129.             }
  130.         }
  131.         private StringBuffer getBufferStringFromBuffer(BufferedReader br) throws Exception{
  132.             StringBuffer buffer = new StringBuffer();
  133.  
  134.             String line;
  135.             while((line = br.readLine()) != null){
  136.                 buffer.append(line + '\n');
  137.             }
  138.  
  139.             if (buffer.length() == 0)
  140.                 return null;
  141.  
  142.             return buffer;
  143.         }
  144.     }
  145.  
  146.  
  147. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement