170 Java Android Program to Send and Receive Data From Server
Posted by Superadmin on December 03 2015 14:39:14
Here is source code of the Program to Send and Receive Data From Server. The program is successfully compiled and run on a Windows system using Eclipse Ide. The program output is also shown below.
U send and receive data from server using Google Cloud Messaging. For more information go to :- http://developer.android.com/google/gcm/index.html

Using Google cloud messaging would demand you to set up your own server either on your local host or on the internet , using Google App engine would be beneficial in such a scenario and yes there are other methods too to set up your server. The most important thing however is how to communicate between your application and server . The following code demonstrates how to send and receive data from server set up at parse.com which has already implemented server coding for , you just need to use there Api to send and receive data for more info for setting up a server go through the parse tutorials – www.parse.com

Add

package com.example.travelplanner;

import com.parse.Parse;
import com.parse.ParseAnalytics;
import com.parse.ParseObject;

import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.util.Log;
import android.view.Menu;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

public class Addpool extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_addpool);
Parse.initialize(this, "PTVK87QK142x3t2xfuVI1HUN5ahNj1IBaynivYZA",
"a4kY2kTmf55Uj9wpaTs44dkKhnUCjUNx8AxJpx9C");
ParseAnalytics.trackAppOpened(getIntent());

final EditText name = (EditText) findViewById(R.id.pool_name);
final EditText time = (EditText) findViewById(R.id.pool_time);
final EditText date = (EditText) findViewById(R.id.pool_date);
final EditText endloc = (EditText) findViewById(R.id.pool_end);
final EditText strtloc = (EditText) findViewById(R.id.pool_start);
// intialize the entry here
final ParseObject carpool = new ParseObject("Pool");
Button sub = (Button) findViewById(R.id.pool_submit);
sub.setOnClickListener(new View.OnClickListener() {

@Override
public void onClick(View v) {
// TODO Auto-generated method stub
String date1 = date.getText().toString();
String time1 = time.getText().toString();
// check what is coming here
Log.i("date", date.getText().toString());
if (date1 == "" || time1 == "") {

Toast.makeText(getApplicationContext(),
"Enter both date amd time", Toast.LENGTH_LONG)
.show();
} else {
carpool.put("date", date.getText().toString());
carpool.put("name", name.getText().toString());
carpool.put("time", time.getText().toString());
carpool.put("strt_loc", strtloc.getText().toString());
carpool.put("end_dest", endloc.getText().toString());
carpool.put("pool", "iiitd");
carpool.saveInBackground();
startActivity(new Intent(Addpool.this, Pool_choose.class));
}
}
});
}

@Override
protected void onDestroy() {
// TODO Auto-generated method stub
super.onDestroy();
}

@Override
protected void onPause() {
// TODO Auto-generated method stub
super.onPause();
onDestroy();
}

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

}


I have used Action-bar Pull to Refresh library u can find this and a lot of other fun libraries at www.androidviews.net.
Actvity_Main

package com.example.travelplanner;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.concurrent.ExecutionException;

import uk.co.senab.actionbarpulltorefresh.library.PullToRefreshAttacher;
import android.annotation.SuppressLint;
import android.app.ListActivity;
import android.content.SharedPreferences;
import android.os.AsyncTask;
import android.os.Bundle;
import android.preference.PreferenceManager;
import android.util.Log;
import android.view.Menu;
import android.view.View;
import android.widget.ListView;
import android.widget.Toast;

import com.parse.FindCallback;
import com.parse.Parse;
import com.parse.ParseAnalytics;
import com.parse.ParseObject;
import com.parse.ParseQuery;

//have to add a navigation drawer here later change to android list view here -- to be done later
@SuppressLint("SimpleDateFormat")
public class Carpool extends ListActivity implements
PullToRefreshAttacher.OnRefreshListener {

List List = new ArrayList();
private PullToRefreshAttacher mPullToRefreshAttacher;

@Override
protected void onDestroy() {
// TODO Auto-generated method stub
super.onDestroy();
}

@Override
protected void onPause() {
// TODO Auto-generated method stub
super.onPause();
onDestroy();
}

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

// get the data from the server and display it here
Log.i("list adapter set", "adapter");
get();
mPullToRefreshAttacher = PullToRefreshAttacher.get(this);
mPullToRefreshAttacher.addRefreshableView(getListView(), this);

}

public void get() {

Parse.initialize(this, "PTVK87QK142x3t2xfuVI1HUN5ahNj1IBaynivYZA",
"a4kY2kTmf55Uj9wpaTs44dkKhnUCjUNx8AxJpx7C");
ParseAnalytics.trackAppOpened(getIntent());

ParseQuery query = ParseQuery.getQuery("Pool");
SharedPreferences settings = PreferenceManager
.getDefaultSharedPreferences(this);
String src_loc = settings.getString("source_location", "n/a");
String dest_loc = settings.getString("dest_location", "n/a");

query.whereEqualTo("end_dest", dest_loc);
query.whereEqualTo("strt_loc", src_loc);
query.findInBackground(new FindCallback() {

@Override
public void done(List objects,
com.parse.ParseException e) {
// TODO Auto-generated method stub
if (e == null) {
Log.d("objects", "Retrieved " + objects.size());
for (ParseObject i : objects) {
SmsFormat message = new SmsFormat();
Log.i("date", i.getString("date"));
SimpleDateFormat formatter = new SimpleDateFormat(
"dd/MM/yyyy");
Date d = null;
try {
d = formatter.parse(i.getString("date"));
} catch (ParseException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}

message.setDate(d);
message.setEndDestination(i.getString("end_dest"));
message.setName(i.getString("name"));
message.setStartDestination(i.getString("strt_loc"));
Log.i("time", i.getString("time"));
message.setTime(i.getString("time"));
Log.i("time_msg", message.getTime());
List.add(message);
Log.i("list", Integer.toString(List.size()));
}
} else {
Log.d("objects", "Error: " + e.getMessage());
}

}

});
Log.i("here", "here");
this.setListAdapter(new ListAdapter(this, List));

}

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

// on refereshing
@Override
public void onRefreshStarted(View view) {
// TODO Auto-generated method stub
get();
new AsyncTask() {

@Override
protected Void doInBackground(Void... params) {
try {
Thread.sleep(5000);
Log.i("sleep", "asynced sleep");
} catch (InterruptedException e) {
e.printStackTrace();
}
return null;
}

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

// Notify PullToRefreshAttacher that the refresh has finished
mPullToRefreshAttacher.setRefreshComplete();
}
}.execute();

}

@Override
protected void onListItemClick(ListView l, View v, int position, long id) {
SmsFormat sms = (SmsFormat) getListAdapter().getItem(position);
Log.i("MSG", "hi");
// use this sms item....
Toast.makeText(getApplicationContext(), sms.getTime(),
Toast.LENGTH_LONG).show();
}

}