В моем mainActivity у меня есть просмотр списка, где пользователь может выбрать один.Например, в mainActivity есть 3 списка, которые представляют собой startTripActivity, ClockinActivity, CustomerSvcActivity.
Для начального действия пользователь нажимал на это, и он отображал кнопку, а после щелчка отображал тост-сообщение с информацией о своем местонахождении и отправлял на сервер.Для clockinActivity пользователь может щелкнуть, чтобы отобразить текущее время / дату, и нажать кнопку, чтобы отправить эти данные на сервер.
Для клиентов vcActivity пользователь нажимает кнопку, и он открывает сканер штрих-кода, возвращает результат и отправляет его на сервер.То, что я хочу сделать, это каждое из тех действий, которые были отправлены на сервер. Я также хочу отправить местоположение GPS с данными.Например, starttrip будет отправлять информацию GPS на сервер, Clockin будет отправлять время / дату Clockin, а также информацию о местоположении GPS, где они синхронизированы, и данные о результатах штрих-кода, а также информацию о местоположении GPS, где они сканировали код, отправленный на сервер.
Я хотел бы увидеть некоторые образцы и предложения.Все поиски, которые я нашел, в основном заключаются в том, как получать данные gps каждые xx минут, что не совсем то, что я ищу, и немногие другие не очень мне помогают.В самом низу этого поста приведены коды моего образца, связывающегося с веб-сервером.
Спасибо
MainActivity.java
public class Customer extends ListActivity
{
CustomerListItem[] items = {
new CustomerListItem("Start Trip", StartTripActivity.class),
new CustomerListItem("Clock in", ClockinActivity.class),
new CustomerListItem("Customer Svc", CustomerSvcActivity.class),
private String username;
@Override
public void onCreate(Bundle icicle)
{
super.onCreate(icicle);
setContentView(R.layout.customer);
setListAdapter(new ArrayAdapter<CustomerListItem>(
this, android.R.layout.simple_list_item_1, items));
selection = (TextView) findViewById(R.id.selection);
resultsTxt = (TextView) findViewById(R.id.cancel);
@Override
protected void onListItemClick(ListView l, View v, int position, long id)
{
super.onListItemClick(l, v, position, id);
final Intent intent = new Intent(this, items[position].getActivity());
startActivityForResult(intent, position);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent intent)
{
super.onActivityResult(requestCode, resultCode, intent);
if (resultCode == RESULT_OK)
{
// Perform different actions based on from which activity is
// the application returning:
switch (requestCode)
{
case 0:
// TODO: handle the return of the StartTripActivity
break;
.............
}
StartTripActivity
public class StartTripActivity extends Activity {
private static final long MINIMUM_DISTANCE_CHANGE_FOR_UPDATES = 1; // in Meters
private static final long MINIMUM_TIME_BETWEEN_UPDATES = 1000; // in Milliseconds
protected LocationManager locationManager;
protected Button retrieveLocationButton;
private void Pop(String string) {
// TODO Auto-generated method stub
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.start);
retrieveLocationButton = (Button) findViewById(R.id.retrieve_location_button);
locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
locationManager.requestLocationUpdates(
LocationManager.GPS_PROVIDER,
MINIMUM_TIME_BETWEEN_UPDATES,
MINIMUM_DISTANCE_CHANGE_FOR_UPDATES,
new MyLocationListener()
);
retrieveLocationButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
showCurrentLocation();
}
protected void showCurrentLocation() {
Location location = locationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER);
if (location != null) {
String message = String.format(
"Current Location \n Longitude: %1$s \n Latitude: %2$s",
location.getLongitude(), location.getLatitude()
);
Toast.makeText(StartTripActivity.this, message,
Toast.LENGTH_LONG).show();
}
Intent i = new Intent(getApplicationContext(), Customer.class);
startActivity(i);
}
class MyLocationListener implements LocationListener {
@SuppressWarnings("null")
public void onLocationChanged(Location location) {
String message = String.format(
"New Location \n Longitude: %1$s \n Latitude: %2$s",
location.getLongitude(), location.getLatitude()
);
Toast.makeText(StartTripActivity.this, message, Toast.LENGTH_LONG).show();
} catch (Exception e) {
}
}
public void onStatusChanged(String s, int i, Bundle b) {
Toast.makeText(StartTripActivity.this, "Provider status changed",
Toast.LENGTH_SHORT).show();
}
public void onProviderDisabled(String s) {
Toast.makeText(StartTripActivity.this,
"Provider disabled by the user. GPS turned off",
Toast.LENGTH_LONG).show();
}
public void onProviderEnabled(String s) {
Toast.makeText(StartTripActivity.this,
"Provider enabled by the user. GPS turned on",
Toast.LENGTH_LONG).show();
}
ClockinActivity.java
public class ClockinActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.clockin);
TextView textView= (TextView)findViewById(R.id.Date);
String currentDateTimeString = DateFormat.getDateInstance().format(new Date());
textView.setText(currentDateTimeString);
Thread myThread = null;
Runnable runnable = new CountDownRunner();
myThread= new Thread(runnable);
myThread.start();
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
Pop("Back Button");
Intent intent = new Intent();
setResult(RESULT_OK, intent);
finish();
return true;
}
return super.onKeyDown(keyCode, event);
}
private void Pop(String string) {
// TODO Auto-generated method stub
}
public void doWork() {
runOnUiThread(new Runnable() {
public void run() {
try{
TextView txtCurrentTime= (TextView)findViewById(R.id.lbltime);
Date dt = new Date();
int hours = dt.getHours();
int minutes = dt.getMinutes();
int seconds = dt.getSeconds();
String curTime = hours + ":"+ minutes + ":"+ seconds;
txtCurrentTime.setText(curTime);
}catch (Exception e) {
}
}
});
}
class CountDownRunner implements Runnable{
// @Override
public void run() {
while(!Thread.currentThread().isInterrupted()){
try {
doWork();
Thread.sleep(1000);
} catch (InterruptedException e) {
Thread.currentThread().interrupt();
}catch(Exception e){
}
}
Button btn = (Button) findViewById(R.id.btn_OK);
btn.setOnClickListener(new View.OnClickListener()
{
public void onClick(View view) {
Intent i = new Intent(getApplicationContext(), Customer.class);
startActivity(i);
//finish();
}
CustomerSvcActivity.java
public class CustomerSvcActivity extends Activity {
private Button btnscan;
@Override
public boolean onKeyDown(int keyCode, KeyEvent event)
{
if(keyCode==KeyEvent.KEYCODE_BACK)
{
this.startActivity(new Intent(CustomerSvcActivity.this,Customer.class));
}
return true;
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.customersvc);
btnscan = (Button) findViewById(R.id.scanbtn);
btnscan.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
IntentIntegrator.initiateScan(CustomerSvcActivity.this);
}
});
}
protected void onActivityResult(int requestCode, int resultCode,
Intent data) {
switch(requestCode) {
case IntentIntegrator.REQUEST_CODE: {
if (resultCode != RESULT_CANCELED) {
IntentResult scanResult =
IntentIntegrator.parseActivityResult(requestCode, resultCode, data);
if (scanResult != null) {
String upc = scanResult.getContents();
// need to return the result without display and send to server???
}
}
break;
Пример класса отправки данных
public class Sample extends Activity {
/** Called when the activity is first created. */
TextView result;
EditText text;
Button send;
private ArrayList<NameValuePair> postParameters;
AlertDialog.Builder alert;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
alert = new AlertDialog.Builder(this);
alert.setCancelable(true);
result=(TextView)findViewById(R.id.result);
text=(EditText)findViewById(R.id.text);
send=(Button)findViewById(R.id.send);
send.setOnClickListener(new View.OnClickListener() {
public void onClick(View view) {
//postParameters.add(new BasicNameValuePair("text",
//text.getText().toString()));
postData(text.getText().toString());
//saveData();
showData();
}
public void showData()
{
try {
String response = CustomHttpClient
.executeHttpGet("http://www.merrill.com/android.php");
result.setText(response);
} catch (Exception e) {
}
}