Saturday, 2 April 2016

Log Online webservice Listview(Fetch Data)

MainActivity

import android.app.Activity;
import android.app.ProgressDialog;
import android.os.AsyncTask;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ListAdapter;
import android.widget.ListView;
import android.widget.SimpleAdapter;
import android.widget.Toast;

import org.json.JSONArray;
import org.json.JSONObject;

import java.util.ArrayList;
import java.util.HashMap;

public class MainActivity extends Activity {


    public static ArrayList<HashMap<String,String>> ar;
    ListView lv;
    String abcd;

    public static final String one="one",two="two";
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        lv = (ListView)findViewById(R.id.listView);

        ar = new ArrayList<HashMap<String, String>>();
        new getdata().execute();

    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.menu_main, menu);
        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // Handle action bar item clicks here. The action bar will
        // automatically handle clicks on the Home/Up button, so long
        // as you specify a parent activity in AndroidManifest.xml.
        int id = item.getItemId();

        //noinspection SimplifiableIfStatement
        if (id == R.id.action_settings) {
            return true;
        }

        return super.onOptionsItemSelected(item);
    }


    class getdata extends AsyncTask<Void, Void, Void> {

        ProgressDialog pd;

        @Override
        protected void onPreExecute() {
            super.onPreExecute();
            pd = new ProgressDialog(MainActivity.this);
            pd.setTitle("Loading");
            pd.setMessage("Loading....");
            pd.setCancelable(false);
            pd.show();
        }

        @Override
        protected Void doInBackground(Void... params)        {


            String s = "http://darjinappy.comlu.com/index.php";
            Asynktakhttp ask = new Asynktakhttp();
            Log.d("Asynk Task", "done");
            String json = ask.getdata(s);
            System.out.println(json);
            if (json != null){

                try {

                    JSONObject jo = new JSONObject(json);
                    JSONArray ja = jo.getJSONArray("users");

                    Log.d("object json:",jo.toString());
                    //int a=ja.length();
                    //Log.d("length",String.valueOf(ar));
                    for(int i=0 ; i < ja.length(); i++){

                        HashMap<String,String> map = new HashMap<String,String>();
                        JSONObject jobj = ja.getJSONObject(i);


                        map.put(one,jobj.getString("username"));
                        map.put(two,jobj.getString("password"));

                        ar.add(map);
                        Log.d("map", String.valueOf(map));
                    }

                }
                catch (Exception e){


                }
            }
            else {


            }


            return null;
        }

        @Override
        protected void onPostExecute(Void aVoid) {
            super.onPostExecute(aVoid);


            //AdapterNew an = new AdapterNew(MainActivity.this,ar);

            ListAdapter an=new SimpleAdapter(getApplicationContext(),ar,R.layout.layout_1,new String[]{one,two},new int[]{R.id.tx1,R.id.tx2});

            //Toast.makeText(getApplicationContext(),ar.toString(),Toast.LENGTH_LONG).show();
            lv.setAdapter(an);
            lv.setOnItemClickListener(new AdapterView.OnItemClickListener() {
                @Override
                public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                    Toast.makeText(getApplicationContext(),ar.get(+position).get(one),Toast.LENGTH_LONG).show();
                }
            });

            if(pd.isShowing()){
                pd.dismiss();
            }
        }
    }}

activity_main.xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools" 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" tools:context=".MainActivity">


    <ListView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/listView"
        android:layout_alignParentTop="true"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true" />

</RelativeLayout>

layout_1.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent" android:layout_height="match_parent"
    android:orientation="vertical">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="New Text"
        android:id="@+id/tx1"
        android:textColor="#020202" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="New Text"
        android:id="@+id/tx2"
        android:textColor="#020202" />
</LinearLayout>

Asynktakhttp.java

import android.util.Log;
import java.io.BufferedInputStream;
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;

/**
 * Created by Nappy on 18-Feb-16.
 */
public class Asynktakhttp {

    static String stream = null;

    Asynktakhttp(){


    }

    public String getdata(String urlnew){


        Log.d("url", urlnew);
        try{

            URL url = new URL(urlnew);

            HttpURLConnection httpsURLConnection = (HttpURLConnection)url.openConnection();
            Log.d("Connection","done");
            httpsURLConnection.setRequestMethod("GET");
            Log.d("method", "Connection method done");

            if (httpsURLConnection.getResponseCode()==200){
                Log.d("code","connection code done");

                InputStream in = new BufferedInputStream(httpsURLConnection.getInputStream());
                Log.d("in","input stream done");
                BufferedReader br = new BufferedReader(new InputStreamReader(in));
                Log.d("bufferreader","buffer stream done");
                StringBuilder sb = new StringBuilder();

                String line;

                while ((line=br.readLine())!=null){
                    sb.append(line);
                    Log.d("sb",sb.toString());

                }

                stream = sb.toString();

                httpsURLConnection.disconnect();


            }

            else{
                Log.d("else", "cant connect ");


            }



        }
        catch (Exception e){


        }

        finally {

        }


        return  stream;
    }
}


AdapterNew.java

import android.annotation.SuppressLint;
import android.content.Context;
import android.os.Message;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.BaseAdapter;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;

import java.util.ArrayList;
import java.util.HashMap;

/**
 * Created by Nappy on 18-Feb-16.
 */
public class AdapterNew extends BaseAdapter {



    Context context;
    LayoutInflater layoutInflater;
    ArrayList<HashMap<String,String>> data;
    ArrayList<String> arlst;
    public  static ArrayAdapter arone;

    HashMap<String,String> result = new HashMap<String,String>();

    AdapterNew(Context context, ArrayList<HashMap<String,String>> list){


        this.context = context;
        this.data = list;

    }

    @Override
    public int getCount() {
        return data.size();
    }

    @Override
    public Object getItem(int position) {
        return null;
    }

    @Override
    public long getItemId(int position) {
        return 0;
    }



    @Override
    public View getView(int position, View convertView, ViewGroup parent) {

        TextView tv1,tv2;

        layoutInflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        @SuppressLint("ViewHolder")
        View view = layoutInflater.inflate(R.layout.layout_1,parent,false);


        tv1 = (TextView)view.findViewById(R.id.tx1);
        tv2 =   (TextView)view.findViewById(R.id.tx2);

        result = data.get(position);
        tv1.setText(result.get("one"));
        tv2.setText(result.get("two"));



        return view;
    }
}

WEBSERVICE
connection.php

<?Php

$dbconn=mysql_connect("mysql12.000webhost.com","a5738824_nappy","gj1dk4658") or die("lost");
mysql_select_db("a5738824_db",$dbconn);
//echo "connection successful";


?>

index.php

<?php

include "connection.php";

$sql="Select * from user";

$array=mysql_query($sql);

$arr=array();

while($row=mysql_fetch_assoc($array)){

$arr ["users"][]=$row;

}
echo json_encode($arr);

?>



No comments:

Post a Comment