
Here i want to display list view and the items are in list those are loaded from server. Before starting this program just concentrate on Json (API).
URL: http://androindian.com/apps/blog_links/api.php
Req: {“action”:”get_all_links”}
Res Success : {“response”:”success”,”results”:2,”data”:[{“id”:”1″,”title”:”android-activity-life-cycle”,”url”:”http:\/\/rajandroindian.blogspot.in\/2015\/08\/android-activity-life-cycle.html”},{“id”:”2″,”title”:”android-interview-questions”,”url”:”http:\/\/rajandroindian.blogspot.in\/2015\/08\/android-interview-questions.html”}]}
Res empty : {“response”:”success”,”results”:0,”data”:[]}
Res Failed : {“response”:”failed”}
activitymain.xml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/activity_main" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context="androiindian.listviewfromjson.MainActivity"> <ListView android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/list"> </ListView> </RelativeLayout> |
ActivityMain.java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 |
package androiindian.listviewfromjson; import android.content.Intent; import android.os.AsyncTask; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.util.Log; import android.view.View; import android.widget.AdapterView; import android.widget.ArrayAdapter; import android.widget.ListView; import org.json.JSONArray; import org.json.JSONException; import org.json.JSONObject; import java.util.ArrayList; public class MainActivity extends AppCompatActivity { JSONObject jsonoBject; String output=null,val1; ListView programslist; ArrayAdapter listadapter; JSONArray jsonArray=null; ArrayList<String> myprogrammes = new ArrayList(); @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); programslist=(ListView)findViewById(R.id.list); listadapter=new ArrayAdapter(getApplicationContext(), R.layout.custom,myprogrammes); programslist.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { String urlposi=""; try{ String programurl=programslist.getItemAtPosition(position).toString(); for (int i = 0; i < jsonArray.length(); i++) { JSONObject subObj = jsonArray.getJSONObject(i); String d_nm = subObj.getString("title".trim()); if(programurl.equals(d_nm)){ urlposi = subObj.getString("url".trim()); System.out.println("The Selected Unit::::"+urlposi); break; } } }catch(Exception e){ e.printStackTrace(); } Log.e("URL is",urlposi); Intent prog=new Intent(MainActivity.this,ProgramDisplay.class); prog.putExtra("urll",urlposi); prog.putExtra("Title",programslist.getItemAtPosition(position).toString()); startActivity(prog); } }); JSONObject Programeslist=new JSONObject(); try { Programeslist.put("action","get_all_links"); } catch (JSONException e) { e.printStackTrace(); } Allprogrames pr=new Allprogrames(); pr.execute(Programeslist.toString()); } public class Allprogrames extends AsyncTask<String,String,String> { String url = "http://androindian.com/apps/blog_links/api.php"; @Override protected String doInBackground(String... params) { jsonoBject = JsonFunction.getJsonFromUrlparam(url, params[0]); Log.i("json", "" + jsonoBject); return String.valueOf(jsonoBject); } @Override protected void onPostExecute(String s) { super.onPostExecute(s); try { JSONObject jsonObject1 = new JSONObject(s); jsonArray = jsonObject1.getJSONArray("data"); for(int i=0;i<jsonArray.length();i++) { JSONObject jsonObject2 = jsonArray.getJSONObject(i); val1 = jsonObject2.getString("title"); String pro = jsonObject2.getString("url"); myprogrammes.add(val1); } programslist.setAdapter(listadapter); } catch (Exception e) { e.printStackTrace(); } } } } |
custom.xml
1 2 3 4 5 6 7 8 9 10 11 |
<?xml version="1.0" encoding="utf-8"?> <TextView xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content" android:padding="5dp" android:background="#fff" android:textSize="18dp" android:textColor="@color/colorPrimaryDark"> </TextView> |
ProgamDisplay.java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 |
package androiindian.listviewfromjson; import android.app.AlertDialog; import android.app.ProgressDialog; import android.content.Intent; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.util.Log; import android.webkit.WebView; import android.webkit.WebViewClient; import android.widget.TextView; import android.widget.Toast; /** * Created by janga on 31-10-2016. */ public class ProgramDisplay extends AppCompatActivity { private WebView webview; private ProgressDialog progressBar; String weburl=null; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.display_praogram); Intent prog=getIntent(); String title=prog.getStringExtra("Title"); weburl=prog.getStringExtra("urll"); TextView prog_text=(TextView)findViewById(R.id.dis_tv); prog_text.setText(title); webview = (WebView) findViewById(R.id.dis_web); webview.getSettings().setJavaScriptEnabled(true); final AlertDialog alertDialog = new AlertDialog.Builder(this).create(); progressBar = ProgressDialog.show(ProgramDisplay.this, "Content Loading", "Please Wait..."); webview.setWebViewClient(new WebViewClient() { public boolean shouldOverrideUrlLoading(WebView view, String url) { if(url.equalsIgnoreCase(weburl+"?m=1")) { Log.i("web", "Processing webview url click..."); view.loadUrl(url); } return true; } public void onPageFinished(WebView view, String url) { Log.i("web", "Finished loading URL: " +url); if (progressBar.isShowing()) { progressBar.dismiss(); } } public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) { Log.e("web", "Error: " + description); Toast.makeText(getApplicationContext(), "Oh no! " + description, Toast.LENGTH_SHORT).show(); } }); webview.loadUrl(weburl); } } |
display_program.java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent" android:weightSum="10"> <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:layout_weight="1" android:padding="5dp"> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/dis_tv" android:gravity="center" android:textColor="@color/colorAccent" android:textSize="20dp"/> <WebView android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/dis_web"> </WebView> </LinearLayout> </LinearLayout> |
JsonFunction.java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 |
package androiindian.listviewfromjson; import android.util.Log; import org.json.JSONException; import org.json.JSONObject; import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.OutputStream; import java.net.HttpURLConnection; import java.net.MalformedURLException; import java.net.URL; /** * Created by janga on 31-10-2016. */ public class JsonFunction { public JSONObject getJsonFromUrl(String url) { JSONObject jsonObject = null; try { URL jsonUrl=new URL(url); HttpURLConnection connection= (HttpURLConnection) jsonUrl.openConnection(); InputStream is=new BufferedInputStream(connection.getInputStream()); BufferedReader bufferedReader=new BufferedReader(new InputStreamReader(is)); StringBuffer sb=new StringBuffer(); String line; while ((line=bufferedReader.readLine())!=null) { sb.append(line+"\n"); } is.close(); Log.i("sb",sb.toString()); jsonObject=new JSONObject(sb.toString()); } catch (MalformedURLException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } catch (JSONException e) { e.printStackTrace(); } return jsonObject; } public static JSONObject getJsonFromUrlparam(String url, String para) { JSONObject jsonObject = null; try { URL jsonUrl=new URL(url); HttpURLConnection connection= (HttpURLConnection) jsonUrl.openConnection(); connection.setDoOutput(true); connection.setDoInput(true); connection.setConnectTimeout(60000); connection.setRequestMethod("POST"); connection.setRequestProperty("Content-Type","application/x-www-form-urlencoded"); connection.setRequestProperty("Accept-Charset", "UTF-8"); connection.setRequestProperty("Accept", "application/json"); connection.setUseCaches(false); connection.connect(); OutputStream mOutPut = new BufferedOutputStream(connection.getOutputStream()); mOutPut.write(para.getBytes()); mOutPut.flush(); InputStream is=new BufferedInputStream(connection.getInputStream()); BufferedReader bufferedReader=new BufferedReader(new InputStreamReader(is)); StringBuffer sb=new StringBuffer(); String line; while ((line=bufferedReader.readLine())!=null) { sb.append(line+"\n"); } is.close(); Log.i("json",sb.toString()); jsonObject=new JSONObject(sb.toString()); Log.i("json",""+jsonObject); } catch (MalformedURLException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } catch (JSONException e) { e.printStackTrace(); } return jsonObject; } public static String getJsonUrlparamString(String url, String para) { StringBuffer sb = null; try { URL jsonUrl=new URL(url); HttpURLConnection connection= (HttpURLConnection) jsonUrl.openConnection(); connection.setDoOutput(true); connection.setDoInput(true); connection.setConnectTimeout(60000); connection.setRequestMethod("POST"); connection.setRequestProperty("Content-Type","application/x-www-form-urlencoded"); connection.setRequestProperty("Accept-Charset", "UTF-8"); connection.setRequestProperty("Accept", "application/json"); connection.setUseCaches(false); connection.connect(); OutputStream mOutPut = new BufferedOutputStream(connection.getOutputStream()); mOutPut.write(para.getBytes()); mOutPut.flush(); InputStream is=new BufferedInputStream(connection.getInputStream()); BufferedReader bufferedReader=new BufferedReader(new InputStreamReader(is)); sb=new StringBuffer(); String line; while ((line=bufferedReader.readLine())!=null) { sb.append(line+"\n"); } is.close(); Log.i("json",sb.toString()); } catch (MalformedURLException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } return sb.toString(); } } |
androidmanifest.xml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="androiindian.listviewfromjson"> <uses-permission android:name="android.permission.INTERNET"></uses-permission> <application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:supportsRtl="true" android:theme="@style/AppTheme"> <activity android:name=".MainActivity"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <activity android:name=".ProgramDisplay"></activity> </application> </manifest> |
Output: