package com.amap.map3d.demo.listmap; import android.app.Activity; import android.os.Bundle; import android.os.Handler; import android.os.Message; import android.support.annotation.NonNull; import android.support.annotation.Nullable; import android.support.v7.widget.LinearLayoutManager; import android.support.v7.widget.RecyclerView; import android.util.Log; import com.amap.api.maps.model.LatLng; import com.amap.map3d.demo.R; import java.util.ArrayList; import java.util.List; /** * Created by shixin on 2018/4/24. */ public class RecycleViewActivity extends Activity { private LatLng A = new LatLng(39.962773, 116.391544); private LatLng B = new LatLng(39.922773, 116.401672); private LatLng C = new LatLng(39.913688, 116.40223); private LatLng D = new LatLng(39.913129, 116.392445); RecyclerView recyclerView; private RecyclerView.LayoutManager mLayoutManager; private MyRecycleViewAdapter mAdapter; private List<BaseEntity> list; private Handler handler = new Handler() { @Override public void handleMessage(Message msg) { super.handleMessage(msg); Log.i("SHIXIN", "刷新列表"); list.clear(); list.addAll(getNewsEntities()); mAdapter.notifyDataSetChanged(); } }; @Override protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_map_recycleview); mLayoutManager = new LinearLayoutManager(this, LinearLayoutManager.VERTICAL, false); list = getBaseEntities(); mAdapter = new MyRecycleViewAdapter(list); // recyclerView = findViewById(R.id.recycleview); recyclerView.setLayoutManager(mLayoutManager); recyclerView.setAdapter(mAdapter); new Thread(new Runnable() { @Override public void run() { try { Thread.sleep(5000); } catch (InterruptedException e) { e.printStackTrace(); } handler.sendEmptyMessage(0); } }).start(); } @NonNull private List<BaseEntity> getNewsEntities() { List<BaseEntity> list = new ArrayList<>(); for (int i = 0; i < 15; i++) { if (i == 3) { list.add(new MapEntity(A)); } else if (i == 7) { List<LatLng> latLngs = new ArrayList<>(); latLngs.add(A); latLngs.add(B); latLngs.add(C); latLngs.add(D); list.add(new MapEntity(latLngs)); } else { list.add(new TextEntity("我是列表:" + i)); } } return list; } @NonNull private List<BaseEntity> getBaseEntities() { List<BaseEntity> list = new ArrayList<>(); for (int i = 0; i < 25; i++) { if (i == 3) { list.add(new MapEntity(A)); } else if (i == 5) { List<LatLng> latLngs = new ArrayList<>(); latLngs.add(A); latLngs.add(B); latLngs.add(C); latLngs.add(D); list.add(new MapEntity(latLngs)); } else if (i == 17) { List<LatLng> latLngs = new ArrayList<>(); latLngs.add(A); latLngs.add(B); list.add(new MapEntity(latLngs)); } else if (i == 9) { List<LatLng> latLngs = new ArrayList<>(); latLngs.add(C); latLngs.add(D); list.add(new MapEntity(latLngs)); } else { list.add(new TextEntity("我是列表:" + i)); } } return list; } @Override protected void onDestroy() { super.onDestroy(); mAdapter.onDestroy(); } }