《共享位置》總結

百度地圖部分

需要導入三個包:baidumapapi-base、baidumapapi-map、locSDK
需用使用的核心類有三個:

  • MapView 地圖控件
    在xml文件中像普通控件一樣使用,然後findViewbyId()。
    使用getMap()方法可以得到BaiduMap類。
  • Baidumap 地圖控制
    setMyLocationEnabled(boolean)設置是否打開定位圖層。
    animateMapStatus(MapStatusUpdate u)以動畫效果移動地圖到某點(u指定)。
    clear()清除所有覆蓋物。
    addOverlay(OverlayOptions options)添加覆蓋物。
  • LocationClient 定位
    setLocOption(LocationClientOption option)設置定位參數。
    registerLocationListener(this)添加定位監聽。需要重寫onReceiveLocation(BDLocation location)方法。
    start()開始監聽。

mina框架部分

需要導入的包有兩個:mina-core、slf4j-android
需要使用的核心類有五個:

  • IoConnector 連接控制
    setConnectTimeoutMillis(long l)設置超時。
    getFilterChain()獲取濾鏡鏈。
    setHandler(IoHandlerAdapter adapter)設置IO適配器。
    connect(InetSocketAddress addr)開始連接。返回ConnectFuture。

  • DefaultIoFilterChainBuilder 濾鏡鏈的Builder
    從服務器獲取的數據、向服務器發送的數據都要經過濾鏡鏈處理。

  • IoHandlerAdapter IO適配器
    重寫其中的方法,實現對連接、數據的監聽。

  • ConnectFuture
    awaitUninterruptibly()等待連接創建完成。
    getSession()獲取連接實例。

  • IoSession 連接實例
    write()寫。read()讀。

RecyclerView部分

需要導入的包:android-support-v7-recyclerview
需要使用的核心類:

  • RecyclerView view控件
    setLayoutManager(LayoutManager manager)設置佈局管理器。不設會報錯。
    setAdapter(RecyclerView.Adapter adapter)設置適配器。

  • RecyclerView.Adapter 這是個抽象類,需要繼承他,重寫以下方法:
    onCreateViewHolder(ViewGroup viewGroup, int i)
    onBindViewHolder(RecyclerView.ViewHolder viewHolder, int position)
    getItemCount()
    另外,再寫個構造方法。如果需要點擊事件,再寫個接口。

public interface OnRVItemClickListener{
        void onItemClick(View view, int position);
    }

    private OnRVItemClickListener onRVItemClickListener;
    public void setOnRVItemClickListener(OnRVItemClickListener onRVItemClickListener) {
        this.onRVItemClickListener = onRVItemClickListener;
    }

參數view和position需要在onBindViewHolder方法中指定:

public void onBindViewHolder(RecyclerView.ViewHolder viewHolder, int position) {
        final MyViewHolder holder = (MyViewHolder) viewHolder;
        if (onRVItemClickListener != null){
            holder.itemView.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    int index = holder.getPosition();
                    onRVItemClickListener.onItemClick(holder.itemView,index);
                }
            });
        }
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章