Android开发笔记之简单基站定位程序的实现

2020-01-18 16:47:31丽君

接下来我们打开DemoActivity.java编写代码。

二、为按钮绑定事件

我们在Activity创建时绑定事件,将以下代码添加到setContentView(R.layout.main);后:


/** 为按钮绑定事件 */
Button btnGetLocation = (Button)findViewById(R.id.button1);
btnGetLocation.setOnClickListener(new OnClickListener() {
  @Override
  public void onClick(View arg0) {
    // TODO Auto-generated method stub
    onBtnClick();
  }
});

同时还需要在头部import相关组件:


import android.view.View;
import android.widget.Button;
import android.view.View.OnClickListener;

我们来分析一下这段代码:

首先我们通过findViewById(R.id.button1)找到按钮这个对象,前面加(Button)表示显示的转换为Button对象;

然后设置按钮点击事件的监听器,参数为OnClickListener对象,再重载这个类的onClick方法,调用onBtnClick方法(这个方法得由我们自己去写,他在点击按钮时被调用)。

好了,调用方法写好了,我们来写实现(调用后需要做什么事)。动手编码之前先在脑中整理好思路,养成好习惯。

我们需要在DemoActivty类中添加如下私有方法:

我们需要刚刚提到的onBtnClick回调方法,被调用时实现取得基站信息、获取经纬度、获取地理位置、显示的功能。但是很显然,全部揉到一个方法里面并不是个好主意,我们将它分割为几个方法;

添加获取基站信息的方法getCellInfo,返回基站信息; 添加获取经纬度的方法getItude,传入基站信息,返回经纬度; 添加获取地理位置的方法getLocation,传入经纬度,返回地理位置; 添加显示结果的方法showResult,传入得到的信息在界面上显示出来。

好了,先将方法添上,完整代码如下:


package com.android.demo;
 
import android.R.bool;
import android.R.integer;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.view.View.OnClickListener;
 
public class DemoActivity extends Activity {
  /** Called when the activity is first created. */
  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
     
    /** 为按钮绑定事件 */
    Button btnGetLocation = (Button)findViewById(R.id.button1);
    btnGetLocation.setOnClickListener(new OnClickListener() {
      @Override
      public void onClick(View arg0) {
        // TODO Auto-generated method stub
        onBtnClick();
      }
    });
  }
   
  /** 基站信息结构体 */
  public class SCell{
    public int MCC;
    public int MNC;
    public int LAC;
    public int CID;
  }
   
  /** 经纬度信息结构体 */
  public class SItude{
    public String latitude;
    public String longitude;
  }
   
  /** 按钮点击回调函数 */
  private void onBtnClick(){
     
  }
   
  /** 获取基站信息 */
  private SCell getCellInfo(){
 
  }
   
  /** 获取经纬度 */
  private SItude getItude(SCell cell){
     
  }
   
  /** 获取地理位置 */
  private String getLocation(SItude itude){
     
  }
   
  /** 显示结果 */
  private void showResult(SCell cell, String location){
     
  }
}