Android中的GPS和退出应用程序的提示框

1.布局文件activity_main.xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

    <TextView
        android:id="@+id/tv"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:gravity="center_horizontal"
        android:text="测量地球上任意两点之间的距离"
        android:textSize="21sp" />

    <TextView
        android:id="@+id/tv1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@id/tv"
        android:layout_marginTop="20dp"
        android:text="起点的纬度"
        android:textSize="18sp" />

    <EditText
        android:id="@+id/et1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignBottom="@id/tv1"
        android:layout_below="@id/tv"
        android:layout_toRightOf="@id/tv1"
        android:hint="请输入起点的纬度"
        android:inputType="numberDecimal" />

    <TextView
        android:id="@+id/tv2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@id/tv1"
        android:layout_marginTop="20dp"
        android:text="起点的经度"
        android:textSize="18sp" />

    <EditText
        android:id="@+id/et2"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignBottom="@id/tv2"
        android:layout_below="@id/et1"
        android:layout_toRightOf="@id/tv2"
        android:hint="请输入起点的经度"
        android:inputType="numberDecimal" />

    <TextView
        android:id="@+id/tv3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@id/tv2"
        android:layout_marginTop="20dp"
        android:text="终点的纬度"
        android:textSize="18sp" />

    <EditText
        android:id="@+id/et3"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignBottom="@id/tv3"
        android:layout_below="@id/et2"
        android:layout_toRightOf="@id/tv3"
        android:hint="请输入终点的纬度"
        android:inputType="numberDecimal" />

    <TextView
        android:id="@+id/tv4"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@id/tv3"
        android:layout_marginTop="20dp"
        android:text="终点的经度"
        android:textSize="18sp" />

    <EditText
        android:id="@+id/et4"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignBottom="@id/tv4"
        android:layout_below="@id/et3"
        android:layout_toRightOf="@id/tv4"
        android:hint="请输入终点的经度"
        android:inputType="numberDecimal" />

    <TextView
        android:id="@+id/tv5"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@id/tv4"
        android:layout_marginTop="20dp"
        android:text="两点之间的距离"
        android:textSize="18sp" />

    <EditText
        android:id="@+id/et5"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignBottom="@id/tv5"
        android:layout_below="@id/et4"
        android:layout_toRightOf="@id/tv5" />
    <Button
        android:id="@+id/button"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_below="@id/tv5"
        android:text="确定" />

</RelativeLayout>

2.逻辑代码部分

package xss.gps3;

import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.location.Location;
import android.os.Bundle;
import android.view.KeyEvent;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;

public class MainActivity extends Activity {
 private EditText et1, et2, et3, et4, et5;
 double d1, d2, d3, d4;
 final float[] results = new float[3];// 保存返回结果

 @Override
 protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.activity_main);
  et1 = (EditText) findViewById(R.id.et1);
  et2 = (EditText) findViewById(R.id.et2);
  et3 = (EditText) findViewById(R.id.et3);
  et4 = (EditText) findViewById(R.id.et4);
  et5 = (EditText) findViewById(R.id.et5);
  Button button = (Button) findViewById(R.id.button);

  button.setOnClickListener(new OnClickListener() {

   @Override
   public void onClick(View v) {
    // TODO Auto-generated method stub
    try {
     d1 = Double.parseDouble(et1.getText().toString());
     d2 = Double.parseDouble(et2.getText().toString());
     d3 = Double.parseDouble(et3.getText().toString());
     d4 = Double.parseDouble(et4.getText().toString());

    } catch (NumberFormatException e) {
     // TODO: handle exception
     e.printStackTrace();
    }
    // 计算两点之间的距离(单位:米)
    // 前两个参数表示起点的经度和纬度,中间两个参数表示终点的经度和纬度
    // 最后一个参数表示用于返回结果,数组的第一个之就是返回的距离
    Location.distanceBetween(d1, d2, d3, d4, results);
    // final float bearing = results[1];
    et5.setText(String.valueOf(results[0]) + "m");
   }
  });

 }

 //捕捉屏幕的返回键
 @Override
 public boolean onKeyDown(int keyCode, KeyEvent event) {
  // TODO Auto-generated method stub
  if (keyCode == KeyEvent.KEYCODE_BACK) {
   //按下返回键的时候执行下面的函数
   showDialog();
  }
  return true;
 }
 //提示对话框函数 是否退出当前的应用
 public void showDialog() {
  AlertDialog.Builder  aBuilder = new AlertDialog.Builder(this);
  aBuilder.setTitle("Warm Prompt!");
  aBuilder.setMessage("Whether out of the current application?");
  aBuilder.setIcon(R.drawable.ic_launcher);
  aBuilder.setPositiveButton("ok", new DialogInterface.OnClickListener() {
   
   @Override
   public void onClick(DialogInterface dialog, int which) {
    // TODO Auto-generated method stub
    MainActivity.this.finish();
   }
  });
  aBuilder.setNegativeButton("cancel", new DialogInterface.OnClickListener() {
   
   @Override
   public void onClick(DialogInterface dialog, int which) {
    // TODO Auto-generated method stub
    
   }
  });
  aBuilder.create().show();
 }

 @Override
 public boolean onCreateOptionsMenu(Menu menu) {
  // Inflate the menu; this adds items to the action bar if it is present.
  getMenuInflater().inflate(R.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();
  if (id == R.id.action_settings) {
   return true;
  }
  return super.onOptionsItemSelected(item);
 }
}

说明:本代码肯能不是最优的代码,欢迎读者留言

你可能感兴趣的:(Android中的GPS和退出应用程序的提示框)