step 1) Create a Database with table on you local or hosting server
suppose table name abc and db name is hello
& php code is like that,
hello.php
<?php$HostName = "localhost"; //Define your database username here. $HostUser = "rooot3"; //Define your database password here. $HostPass = "kettyrtr"; //Define your database name here. $DatabaseName = "hello";// Create connection $conn = new mysqli($HostName, $HostUser, $HostPass, $DatabaseName); if ($conn->connect_error) { die("Connection failed: " . $conn->connect_error); } $sql = "SELECT * FROM ListViewDataTable"; $result = $conn->query($sql); if ($result->num_rows >0) { while($row[] = $result->fetch_assoc()) { $tem = $row; $json = json_encode($tem); } } else { echo "No Results Found."; } echo $json; $conn->close(); ?>
test this php in localhost browser location , if it works ok move to next step otherwise try again or comment here if still facing issue,
step 2 ) create mainactivity.java file in android studio & write below code,
package com.android.listviewsearchelement_androidcommon ;
import android.support.v7.app.AppCompatActivity;
import java.util.ArrayList;
import java.util.List;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import android.content.Context;
import android.os.AsyncTask;
import android.os.Bundle;
import android.text.Editable;
import android.text.TextWatcher;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.EditText;
import android.widget.ListView;
import android.widget.ProgressBar;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity {
ListView SubjectListView;
ProgressBar progressBarSubject;
String ServerURL = "http://localhost/hello.php";
EditText editText ;
List<String> listString = new ArrayList<String>();
ArrayAdapter<String> arrayAdapter ;
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
SubjectListView = (ListView)findViewById(R.id.listview1);
progressBarSubject = (ProgressBar)findViewById(R.id.progressBar);
editText = (EditText)findViewById(R.id.edittext1);
new GetHttpResponse(MainActivity.this).execute();
editText.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {
MainActivity.this.arrayAdapter.getFilter().filter(charSequence);
}
@Override
public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {
}
@Override
public void afterTextChanged(Editable editable) {
}
});
}
private class GetHttpResponse extends AsyncTask<Void, Void, Void>
{
public Context context;
String ResultHolder;
public GetHttpResponse(Context context)
{
this.context = context;
}
@Override
protected void onPreExecute()
{
super.onPreExecute();
}
@Override
protected Void doInBackground(Void... arg0)
{
HttpServicesClass httpServiceObject = new HttpServicesClass(ServerURL);
try
{
httpServiceObject.ExecutePostRequest();
if(httpServiceObject.getResponseCode() == 200)
{
ResultHolder = httpServiceObject.getResponse();
if(ResultHolder != null)
{
JSONArray jsonArray = null;
try {
jsonArray = new JSONArray(ResultHolder);
JSONObject jsonObject;
for(int i=0; i<jsonArray.length(); i++)
{
jsonObject = jsonArray.getJSONObject(i);
listString.add(jsonObject.getString("subjects").toString()) ;
}
}
catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
else
{
Toast.makeText(context, httpServiceObject.getErrorMessage(), Toast.LENGTH_SHORT).show();
}
}
catch (Exception e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}
@Override
protected void onPostExecute(Void result)
{
progressBarSubject.setVisibility(View.GONE);
SubjectListView.setVisibility(View.VISIBLE);
arrayAdapter = new ArrayAdapter<String>(MainActivity.this,android.R.layout.simple_list_item_2, android.R.id.text1, listString);
SubjectListView.setAdapter(arrayAdapter);
}
}
}in design folder activity_main.xml file,
<?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="com.android.listviewsearchelement_android.MainActivity">
<EditText
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:id="@+id/edittext1"
android:hint="Search Here"
android:gravity="center"/>
<ProgressBar
android:id="@+id/progressBar"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:visibility="visible"
/>
<ListView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/listview1"
android:layout_below="@id/edittext1" />
</RelativeLayout> Finally create httpservice fileimport org.apache.http.HttpEntity; import org.apache.http.HttpResponse; import org.apache.http.NameValuePair; import org.apache.http.client.ClientProtocolException; import org.apache.http.client.HttpClient; import org.apache.http.client.entity.UrlEncodedFormEntity; import org.apache.http.client.methods.HttpGet; import org.apache.http.client.methods.HttpPost; import org.apache.http.client.methods.HttpUriRequest; import org.apache.http.impl.client.DefaultHttpClient; import org.apache.http.message.BasicNameValuePair; import org.apache.http.params.BasicHttpParams; import org.apache.http.params.HttpConnectionParams; import org.apache.http.params.HttpParams; import org.apache.http.protocol.HTTP; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.net.URLEncoder; import java.util.ArrayList; public class HttpServicesClass { public int responseCode; public String message; public String response; public ArrayList<NameValuePair> ArrayListParams; public ArrayList <NameValuePair> headers; public String UrlHolder; public String getResponse() { return response; } public String getErrorMessage() { return message; } public int getResponseCode() { return responseCode; } public HttpServicesClass(String url) { HttpServicesClass.this.UrlHolder = url; ArrayListParams = new ArrayList<NameValuePair>(); headers = new ArrayList<NameValuePair>(); } public void AddParam(String name, String value) { ArrayListParams.add(new BasicNameValuePair(name, value)); } public void AddHeader(String name, String value) { headers.add(new BasicNameValuePair(name, value)); } public void ExecuteGetRequest() throws Exception { String MixParams = ""; if(!ArrayListParams.isEmpty()) { MixParams += "?"; for(NameValuePair p : ArrayListParams) { String paramString = p.getName() + "=" + URLEncoder.encode(p.getValue(),"UTF-8"); if(MixParams.length() > 1) { MixParams += "&" + paramString; } else { MixParams += paramString; } } } HttpGet httpGet = new HttpGet(UrlHolder + MixParams); for(NameValuePair h : headers) { httpGet.addHeader(h.getName(), h.getValue()); } executeRequest(httpGet, UrlHolder); } public void ExecutePostRequest() throws Exception { HttpPost httpPost = new HttpPost(UrlHolder); for(NameValuePair h : headers) { httpPost.addHeader(h.getName(), h.getValue()); } if(!ArrayListParams.isEmpty()) { httpPost.setEntity(new UrlEncodedFormEntity(ArrayListParams, HTTP.UTF_8)); } executeRequest(httpPost, UrlHolder); } private void executeRequest(HttpUriRequest request, String url) { HttpParams httpParameters = new BasicHttpParams(); HttpConnectionParams.setConnectionTimeout(httpParameters, 10000); HttpConnectionParams.setSoTimeout(httpParameters, 10000); HttpClient httpClient = new DefaultHttpClient(httpParameters); HttpResponse httpResponse; try { httpResponse = httpClient.execute(request); responseCode = httpResponse.getStatusLine().getStatusCode(); message = httpResponse.getStatusLine().getReasonPhrase(); HttpEntity entity = httpResponse.getEntity(); if (entity != null) { InputStream inputStream = entity.getContent(); response = convertStreamToString(inputStream); inputStream.close(); } } catch (ClientProtocolException e) { httpClient.getConnectionManager().shutdown(); e.printStackTrace(); } catch (IOException e) { httpClient.getConnectionManager().shutdown(); e.printStackTrace(); } } private String convertStreamToString(InputStream is) { BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(is)); StringBuilder stringBuilder = new StringBuilder(); String line = null; try { while ((line = bufferedReader.readLine()) != null) { stringBuilder.append(line + "\n"); } } catch (IOException e) { e.printStackTrace(); } finally { try { is.close(); } catch (IOException e) { e.printStackTrace(); } } return stringBuilder.toString(); } }& finally important thing is don't forget to add internet permission<uses-permission android:name="android.permission.INTERNET" />
Please write your query, suggestion in comment box. don't forget sent your real output of this program in comment. Visit our website Mayur infosys Solutions