Thursday, August 20, 2015

Volley JsonObject TextView


.
Volley JsonObject TextView
Using Android Studio 1.4

1) Create New Project

Application Name: MyVolleyJsonObject1
Select API 14:Android 4.0 (IceCreamSandwich)
Follow the wizard to create New Blank Activity.

2) Import Volley Library Into Project

2.1) Download Volley Project

Download volley20151105.zip and unzip it.

2.2) Import using Android Studio

2.3) Add Dependencies

Build.Gradle(Module:App)
apply plugin'com.android.application'
android {
   compileSdkVersion 23
   buildToolsVersion "23.0.1"
   defaultConfig {
       applicationId "com.notarazi.myvolleyjsonobject1"
       minSdkVersion 14
       targetSdkVersion 23
       versionCode 1
       versionName "1.0"
   }
   buildTypes {
       release {
           minifyEnabled false
           proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
       }
   }
}
dependencies {
   compile fileTree(dir'libs'include: ['*.jar'])
   testCompile 'junit:junit:4.12'
   compile 'com.android.support:design:23.1.0'
   compile project(':volley')
}
Sync Project with Gradle Files

2.4) Add Permission

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
   package="com.notarazi.myvolleyjsonobject1" >
   <uses-permission android:name="android.permission.INTERNET"/>
   <application
      android:name="com.notarazi.myvolleyjsonobject1.MyApplication"
       android:allowBackup="true"
       android:icon="@mipmap/ic_launcher"
       android:label="@string/app_name"
       android:supportsRtl="true"
       android:theme="@style/AppTheme" >
       <activity
           android:name=".MainActivity"
           android:label="@string/app_name"
           android:theme="@style/AppTheme.NoActionBar" >
           <intent-filter>
               <action android:name="android.intent.action.MAIN" />
               <category android:name="android.intent.category.LAUNCHER" />
           </intent-filter>
       </activity>
   </application>
</manifest>
If you missed this step, your debug message will tell you about this.

2.5) Create MyApplication.java

package com.notarazi.myvolleyjsonobject1;
import android.app.Application;
import com.android.volley.Request;
import com.android.volley.RequestQueue;
import com.android.volley.toolbox.Volley;
public class MyApplication extends Application {
   private RequestQueue mRequestQueue;
   private static MyApplication mInstance;
   @Override
   public void onCreate() {
       super.onCreate();
       mInstance this;
   }
   public static synchronized MyApplication getInstance() {
       return mInstance;
   }
   public RequestQueue getReqQueue() {
       if (mRequestQueue == null) {
           mRequestQueue = Volley.newRequestQueue(getApplicationContext());
       }
       return mRequestQueue;
   }
   public <Tvoid addToReqQueue(Request<T> req, String tag) {
       getReqQueue().add(req);
   }
   public <Tvoid addToReqQueue(Request<T> req) {
       getReqQueue().add(req);
   }
   public void cancelPendingReq(Object tag) {
       if (mRequestQueue != null) {
           mRequestQueue.cancelAll(tag);
       }
   }
}

3) Edit Layout

3.1) res/layout/content_main.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
   xmlns:android="http://schemas.android.com/apk/res/android"
   xmlns:tools="http://schemas.android.com/tools"
   xmlns:app="http://schemas.android.com/apk/res-auto"
   android:layout_width="match_parent"
   android:layout_height="match_parent"
   android:paddingLeft="@dimen/activity_horizontal_margin"
   android:paddingRight="@dimen/activity_horizontal_margin"
   android:paddingTop="@dimen/activity_vertical_margin"
   android:paddingBottom="@dimen/activity_vertical_margin"
   app:layout_behavior="@string/appbar_scrolling_view_behavior"
   tools:showIn="@layout/activity_main"
   tools:context=".MainActivity">
   <TextView
       android:id="@+id/tv"
       android:layout_width="match_parent"
       android:layout_height="wrap_content"
       android:layout_alignParentLeft="true"
       android:layout_alignParentTop="true"
       android:layout_marginTop="40dp"
       android:textSize="22sp" />
</RelativeLayout>

4) Edit MainActivity.java

package com.notarazi.myvolleyjsonobject1;
import android.app.Activity;
import android.app.ProgressDialog;
import android.os.Bundle;
import android.widget.TextView;
import com.android.volley.Request.Method;
import com.android.volley.Response;
import com.android.volley.VolleyError;
import com.android.volley.toolbox.JsonObjectRequest;
import org.json.JSONException;
import org.json.JSONObject;
public class MainActivity extends Activity {
   String url "http://restcountries.eu/rest/v1/alpha/my";
   ProgressDialog PD;
   TextView tv;
   @Override
   protected void onCreate(Bundle savedInstanceState) {
       super.onCreate(savedInstanceState);
       setContentView(R.layout.activity_main);
       tv = (TextView) findViewById(R.id.tv);
       PD new ProgressDialog(this);
       PD.setMessage("Loading.....");
       PD.setCancelable(false);
       makejsonobjreq();
   }
   private void makejsonobjreq() {
       PD.show();
       // RequestQueue queue = Volley.newRequestQueue(getApplicationContext());
       JsonObjectRequest jsonObjReq = new JsonObjectRequest(Method.GETurl,
               nullnew Response.Listener<JSONObject>() {
           @Override
           public void onResponse(JSONObject response) {
               try {
                   String name = response.getString("name");
                   String capital = response.getString("capital");
                   String region = response.getString("region");
                   String subregion = response.getString("subregion");
                   String population = response
                           .getString("population");
                   tv.setText("Name : " + name + "\nCaptial : "
                           + capital + "\nRegion : " + region
                           + "\nSubRegion : " + subregion
                           + "\nPopulation: " + population);
                   PD.dismiss();
               } catch (JSONException e) {
                   e.printStackTrace();
               }
           }
       }, new Response.ErrorListener() {
           @Override
           public void onErrorResponse(VolleyError error) {
               PD.dismiss();
           }
       });
       MyApplication.getInstance().addToReqQueue(jsonObjReq, "jreq");
   }
}
OUTCOME.

DOWNLOAD

REFERENCES



.

No comments:

Post a Comment