标签:des android style blog io ar color os sp
思路是:新的Activity跳转到带有Fragment的Activity中,同时带有标志性的标志位。
实例代码:
1 package com.cn.gordon.exhibition.walk.activity; 2 3 import java.io.IOException; 4 import java.util.List; 5 import android.annotation.SuppressLint; 6 import android.app.Activity; 7 import android.content.Context; 8 import android.content.Intent; 9 import android.graphics.Bitmap; 10 import android.graphics.drawable.BitmapDrawable; 11 import android.graphics.drawable.Drawable; 12 import android.hardware.Sensor; 13 import android.hardware.SensorEvent; 14 import android.hardware.SensorEventListener; 15 import android.hardware.SensorManager; 16 import android.os.Bundle; 17 import android.os.Handler; 18 import android.os.Message; 19 import android.view.View; 20 import android.view.View.OnClickListener; 21 import android.widget.Button; 22 import android.widget.TextView; 23 import android.widget.Toast; 24 import com.cn.gordon.exhibition.walk.application.GlobalVaries; 25 import com.cn.gordon.exhibition.walk.db.server.BluetoothService; 26 import com.cn.gordon.exhibition.walk.db.server.ExhibitionHallService; 27 import com.cn.gordon.exhibition.walk.db.server.InformationDBService; 28 import com.cn.gordon.exhibition.walk.entity.BluetoothDataBase; 29 import com.cn.gordon.exhibition.walk.entity.ExhibitionsHallDataBase; 30 import com.cn.gordon.exhibition.walk.popup.PromptDialogPopupWindow; 31 import com.cn.gordon.exhibition.walk.utils.AsyncImageLoader; 32 import com.cn.gordon.exhibition.walk.utils.Utils; 33 import com.cn.gordon.exhibition.walk.utils.WalkMainUtils; 34 import com.cn.gordon.exhibition.walk.utils.AsyncImageLoader.ImageCallback; 35 import com.cn.gordon.exhibition.walk.view.MapView; 36 37 public class WalkHallActivity extends Activity 38 { 39 private SensorManager manager; 40 private float degree = 0,myPosition_x=0,myPosition_y=0; 41 private MapView mapview; 42 private Button btnBack,btnQuerry,btnTitle; 43 private TextView textDigit; 44 45 private WalkMainUtils walkUtils; 46 private GlobalVaries global; 47 48 private String sensingMac=""; 49 50 private AsyncImageLoader asyncImageLoader; 51 private Handler handler ; 52 private Runnable freshRunnable; 53 private PromptDialogPopupWindow pDialog; 54 private ExhibitionsHallDataBase eh; 55 private String hallCode=""; 56 private ExhibitionHallService ehService = new ExhibitionHallService(WalkHallActivity.this); 57 58 private SensorListener listener = new SensorListener(); 59 60 @Override 61 protected void onCreate(Bundle savedInstanceState) 62 { 63 super.onCreate(savedInstanceState); 64 setContentView(R.layout.mymap); 65 66 hallCode = getIntent().getStringExtra("hallCode"); 67 68 mapview = (MapView)findViewById(R.id.mymap); 69 mapview.setFocusable(false); 70 manager = (SensorManager) getSystemService(Context.SENSOR_SERVICE); 71 72 init(); 73 setAction(); 74 75 @SuppressWarnings("deprecation") 76 Sensor sensor = manager.getDefaultSensor(Sensor.TYPE_ORIENTATION); 77 manager.registerListener(listener, sensor, 78 SensorManager.SENSOR_DELAY_GAME); 79 myHandler.sendEmptyMessage(0); 80 // cutdownTime = new MyCount(60*1000, 1000); 81 initView(); 82 // getNetInfo(); 83 84 } 85 86 private void init() { 87 btnBack = (Button) findViewById(R.id.btn_back); 88 btnQuerry = (Button) findViewById(R.id.btn_submenu_information); 89 btnTitle = (Button) findViewById(R.id.title_information); 90 textDigit = (TextView) findViewById(R.id.titlebar_information); 91 textDigit.setVisibility(View.GONE); 92 walkUtils = new WalkMainUtils(WalkHallActivity.this); 93 walkUtils.setInitLayoutColor(); 94 95 asyncImageLoader= new AsyncImageLoader(); 96 global = (GlobalVaries)getApplication(); 97 } 98 99 private void setAction() { 100 mapview.setClickLinster(new MapView.OnMyClickLinster() { 101 102 @Override 103 public void onClick() { 104 if (walkUtils.isTBShowing()) { 105 walkUtils.dismissPopupWindow(mapview); 106 }else { 107 walkUtils.showPopupWindow(mapview); 108 } 109 110 } 111 }); 112 113 114 btnBack.setOnClickListener(new OnClickListener() { 115 116 @Override 117 public void onClick(View v) { 118 myHandler.removeMessages(0); 119 finish(); 120 } 121 }); 122 123 btnQuerry.setOnClickListener(new OnClickListener() { 124 125 @Override 126 public void onClick(View v) { 127 walkUtils.dismissPopupWindow(v); 128 Intent in = new Intent(WalkHallActivity.this,CheckoutResultActivity.class); 129 startActivity(in); 130 } 131 }); 132 133 textDigit.setOnClickListener(new OnClickListener() { 134 135 @Override 136 public void onClick(View v) { 137 // textDigit.setVisibility(View.GONE); 138 walkUtils.dismissPopupWindow(v); 139 } 140 }); 141 142 btnTitle.setOnClickListener(new OnClickListener() { 143 144 @SuppressLint("CommitTransaction") 145 @Override 146 public void onClick(View v) { 147 walkUtils.dismissPopupWindow(v); 148 Intent in = new Intent(WalkHallActivity.this,WalkMainActivity.class); 149 Bundle bund = new Bundle(); 150 bund.putInt("Flag", 1); 151 in.putExtras(bund); 152 startActivity(in); 153 finish(); 154 } 155 }); 156 157 } 158 159 private void setTitleCount(){ 160 if (global.isUserLogin()) { 161 InformationDBService iService = new InformationDBService(WalkHallActivity.this); 162 int Count=iService.queryUnreadInfoCount(global.getUserHashCode(),global.getExhibitionHashCode()); 163 if(Count > 0){ 164 textDigit.setVisibility(View.VISIBLE); 165 textDigit.setText(Count+""); 166 }else{ 167 textDigit.setVisibility(View.GONE); 168 } 169 } 170 } 171 172 private final class SensorListener implements SensorEventListener { 173 174 @SuppressLint("HandlerLeak") 175 @Override 176 public void onSensorChanged(SensorEvent event) { 177 degree = event.values[0];// 存放了方向值 178 179 } 180 181 @Override 182 public void onAccuracyChanged(Sensor sensor, int accuracy) { 183 184 } 185 186 } 187 188 @SuppressLint("HandlerLeak") 189 private Handler myHandler = new Handler(){ 190 @Override 191 public void handleMessage(Message msg) { 192 super.handleMessage(msg); 193 194 if(mapview != null){ 195 if (mapview.hasMap()) { 196 // System.out.println("mapview.hasMap()--->yes"); 197 if (global.getOnMyRangeMacList()!=null&&global.getOnMyRangeMacList().size()>0&&!sensingMac.equals(global.getOnMyRangeMacList().get(0))) { 198 sensingMac = global.getOnMyRangeMacList().get(0); 199 BluetoothDataBase bBean = new BluetoothDataBase(); 200 BluetoothService bService = new BluetoothService(WalkHallActivity.this); 201 bBean = bService.queryBlueBeanByMac(sensingMac, global.getExhibitionHashCode()); 202 List<BluetoothDataBase> listBeans = bService.queryBlueBeanByExhibitionCode(global.getExhibitionHashCode()); 203 if (listBeans!=null&&bBean!=null) { 204 if (listBeans.contains(bBean)) { 205 if (bBean.getExhibitionRoomCode().equals(hallCode)) { 206 myPosition_x = (float) bBean.getX(); 207 myPosition_y = (float) bBean.getY(); 208 mapview.setDegree(degree,myPosition_x,myPosition_y);//定位后再显示我的位置,并且我现在在这个展厅 209 }else { 210 //地图切换 211 212 if (pDialog==null) { 213 214 pDialog = new PromptDialogPopupWindow(WalkHallActivity.this, 4, "WalkHallActivity", "逛逛展会检测到您不在此展厅,是否切换到您所在的展厅?"); 215 int okCancel = pDialog.showPopupWindow(mapview); 216 if (okCancel==1) { 217 // String newHallCode = bBean.getExhibitionRoomCode(); 218 // eh = ehService.queryHallByHashCodes(newHallCode, global.getExhibitionHashCode()); 219 // if (eh!=null&&eh.getImageLocalPosition()!=null) { 220 // Bitmap bitMap = Utils.getBitmapFromSD(eh.getImageLocalPosition()); 221 // if (bitMap!=null) { 222 // mapview.setMap(bitMap); 223 // }else { 224 // getMapFromNet(); 225 // } 226 // hallCode = newHallCode; 227 // } 228 Intent in = new Intent(WalkHallActivity.this,WalkHallActivity.class); 229 Bundle bund = new Bundle(); 230 bund.putString("hallCode", bBean.getExhibitionRoomCode()); 231 in.putExtras(bund); 232 startActivity(in); 233 finish(); 234 } 235 } 236 } 237 } 238 239 } 240 241 }else { 242 // System.out.println("else----->myPosition_x="+myPosition_x+"myPosition_y="+myPosition_y); 243 } 244 245 246 }else { 247 System.out.println("mapview.hasMap()--->no"); 248 249 // eh = global.getSelectedHall(); 250 eh = ehService.queryHallByHashCodes(hallCode, global.getExhibitionHashCode()); 251 if (eh!=null&&eh.getImageLocalPosition()!=null) { 252 Bitmap bitMap = Utils.getBitmapFromSD(eh.getImageLocalPosition()); 253 if (bitMap!=null) { 254 mapview.setMap(bitMap); 255 System.out.println("图片==========>1"); 256 }else { 257 getMapFromNet(); 258 System.out.println("图片==========>2"); 259 } 260 261 }else { 262 getMapFromNet(); 263 System.out.println("图片==========>3"); 264 System.out.println("global.getSelectedHall() = null"); 265 } 266 } 267 268 } 269 myHandler.sendEmptyMessageDelayed(0, 1000); 270 } 271 }; 272 273 private void getMapFromNet(){ 274 String urlStr = "" ; 275 if (eh!=null) { 276 urlStr = eh.getImageNetPosition(); 277 } 278 asyncImageLoader.loadDrawable(urlStr, new ImageCallback(){ 279 @Override 280 public void onLoaded(Drawable imageDrawable) { 281 if(imageDrawable != null){ 282 BitmapDrawable draw = (BitmapDrawable) imageDrawable; 283 final Bitmap bitmap = draw.getBitmap(); 284 if (bitmap!=null) { 285 mapview.setMap(bitmap); 286 } 287 try { 288 if (bitmap!=null) { 289 Toast.makeText(WalkHallActivity.this, "图片下载成功", Toast.LENGTH_SHORT).show(); 290 Utils.savePicture(bitmap, eh.getHallHashCode()+".jpg",Utils.ALBUM_PATH,WalkHallActivity.this); 291 292 ehService.setHallLocalPosition(eh.getHallHashCode(), Utils.ALBUM_PATH+java.io.File.separator+eh.getHallHashCode()+".jpg"); 293 }else{ 294 295 Toast.makeText(WalkHallActivity.this, "图片下载失败", Toast.LENGTH_SHORT).show(); 296 } 297 } catch (IOException e) { 298 e.printStackTrace(); 299 } 300 } 301 } 302 303 @Override 304 public void onError(Exception e) { 305 306 } 307 }); 308 } 309 310 311 312 @Override 313 protected void onPause() { 314 if (handler!=null) { 315 System.out.println("handler.removeCallbacks(freshRunnable, 1000);"); 316 handler.removeCallbacks(freshRunnable); 317 } 318 super.onPause(); 319 } 320 321 public void onResume() { 322 if (handler!=null) { 323 System.out.println("handler.postDelayed(freshRunnable, 1000);"); 324 handler.postDelayed(freshRunnable, 1000); 325 } 326 setTitleCount(); 327 super.onResume(); 328 }; 329 330 public void onStop() { 331 super.onStop(); 332 if (handler!=null) { 333 handler.removeCallbacks(freshRunnable); 334 } 335 }; 336 337 338 339 public void initView(){ 340 if (global.isUserLogin()) { 341 handler = new Handler(); 342 freshRunnable = new Runnable() { 343 @Override 344 public void run() { 345 InformationDBService iService = new InformationDBService(WalkHallActivity.this); 346 int Count=iService.queryUnreadInfoCount(global.getUserHashCode(),global.getExhibitionHashCode()); 347 if(Count > 0){ 348 textDigit.setVisibility(View.VISIBLE); 349 textDigit.setText(Count+""); 350 }else{ 351 textDigit.setVisibility(View.GONE); 352 } 353 handler.postDelayed(this, 60000);//一分钟刷新一次页面 354 } 355 }; 356 handler.postDelayed(freshRunnable, 2000); 357 358 359 } 360 361 } 362 363 } 364
另一个带有Fragment的Activity实例代码:
1 package com.cn.gordon.exhibition.walk.activity; 2 3 import java.io.File; 4 5 import android.annotation.SuppressLint; 6 import android.annotation.TargetApi; 7 import android.app.Activity; 8 import android.bluetooth.BluetoothAdapter; 9 import android.bluetooth.BluetoothManager; 10 import android.content.Context; 11 import android.content.Intent; 12 import android.content.pm.PackageManager; 13 import android.os.Bundle; 14 import android.support.v4.app.Fragment; 15 import android.support.v4.app.FragmentActivity; 16 import android.support.v4.app.FragmentTransaction; 17 import android.view.KeyEvent; 18 import android.widget.Toast; 19 20 import com.cn.gordon.exhibition.walk.application.GlobalVaries; 21 import com.cn.gordon.exhibition.walk.db.service.InfoAndArrangeService; 22 import com.cn.gordon.exhibition.walk.db.service.PositionBLEService; 23 import com.cn.gordon.exhibition.walk.fragment.InformationFragment; 24 import com.cn.gordon.exhibition.walk.fragment.SelectHallFragment; 25 import com.cn.gordon.exhibition.walk.fragment.VisitPlanFragment; 26 import com.cn.gordon.exhibition.walk.utils.DrawerLayoutUtils; 27 import com.cn.gordon.exhibition.walk.utils.Utils; 28 29 public class WalkMainActivity extends FragmentActivity 30 { 31 private static final int REQUEST_ENABLE_BT = 1234; 32 private GlobalVaries global ; 33 private DrawerLayoutUtils drawerUtil; 34 private Intent bleServiceIntent,infoAndArrangeIntent; 35 36 // private static String ALBUM_PATH = Utils.getSDPath() + java.io.File.separator + "exhibition_walk"; 37 38 // private AsyncImageLoader asyncImageLoader; 39 40 // private ExhibitionsHallDataBase eh; 41 42 @Override 43 protected void onCreate(Bundle savedInstanceState) 44 { 45 super.onCreate(savedInstanceState); 46 setContentView(R.layout.activity_main); 47 48 File dirFile = new File(Utils.ALBUM_PATH); 49 if(!dirFile.exists()){ 50 dirFile.mkdirs(); 51 } 52 53 drawerUtil = new DrawerLayoutUtils(this); 54 global =(GlobalVaries) getApplication(); 55 global.setDrawerUtil(drawerUtil); 56 57 Bundle bundle=this.getIntent().getExtras(); 58 if(bundle !=null && bundle.getInt("Flag") ==0 ){ 59 //跳转到参展计划 60 FragmentTransaction ft = getSupportFragmentManager().beginTransaction(); 61 Fragment fragment = new VisitPlanFragment(); 62 ft.replace(R.id.fragment_layout, fragment); 63 ft.commit(); 64 }else if (bundle !=null && bundle.getInt("Flag") ==1 ) { 65 FragmentTransaction ft = getSupportFragmentManager().beginTransaction(); 66 Fragment fragment = new InformationFragment(); 67 ft.replace(R.id.fragment_layout, fragment); 68 ft.commit(); 69 }else{ 70 //默认跳转到主页面 71 FragmentTransaction ft = getSupportFragmentManager().beginTransaction(); 72 Fragment fragment = new SelectHallFragment(); 73 ft.replace(R.id.fragment_layout, fragment); 74 ft.commit(); 75 } 76 77 init(); 78 } 79 80 81 82 } 83
然后就是在Activity归属中的Fragment 了,代码是:
package com.cn.gordon.exhibition.walk.fragment; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Date; import java.util.HashMap; import java.util.List; import android.annotation.SuppressLint; import android.content.Context; import android.content.Intent; import android.graphics.Color; import android.os.Bundle; import android.os.Handler; import android.support.v4.app.Fragment; import android.view.LayoutInflater; import android.view.View; import android.view.View.OnClickListener; import android.view.ViewGroup; import android.widget.AdapterView; import android.widget.BaseAdapter; import android.widget.Button; import android.widget.ListView; import android.widget.TextView; import android.widget.Toast; import android.widget.AdapterView.OnItemClickListener; import com.cn.gordon.exhibition.walk.activity.ExhibitionNoticeActivity; import com.cn.gordon.exhibition.walk.activity.ForumDetailsActivity; import com.cn.gordon.exhibition.walk.activity.PositionRemindActivity; import com.cn.gordon.exhibition.walk.activity.R; import com.cn.gordon.exhibition.walk.application.GlobalVaries; import com.cn.gordon.exhibition.walk.db.server.InformationDBService; import com.cn.gordon.exhibition.walk.decoding.Constants; import com.cn.gordon.exhibition.walk.entity.InformationDataBase; import com.cn.gordon.exhibition.walk.entity.MyInformationItemBean; import com.cn.gordon.exhibition.walk.utils.DrawerLayoutUtils; @SuppressLint("ResourceAsColor") public class InformationFragment extends Fragment { private ListView listView; private Button btnTitle,btnMenu; private TextView textTitle; private DrawerLayoutUtils drawerUtil; // private InformationDBService DBservice ; private List<InformationDataBase> DBInfoList; private ArrayList<HashMap<String, Object>> list; private MyAdapter adapter; private GlobalVaries global; private Handler handler; private Runnable runnable; public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { final View view = inflater.inflate(R.layout.view_information, null); init(view); setAction(view); return view; } public void onActivityCreated(Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); } private void init(View view) { btnTitle = (Button) view.findViewById(R.id.title_information); btnMenu = (Button) view.findViewById(R.id.btn_menu); textTitle = (TextView) view.findViewById(R.id.titlebar_information); textTitle.setVisibility(View.GONE); global = (GlobalVaries)getActivity().getApplication(); drawerUtil = global.getDrawerUtil(); // DBservice = new InformationDBService(getActivity()); listView = (ListView)view.findViewById(R.id.myinformationlistView); refreshProgram(); //TODO--->刷新页面 1 min handler = new Handler(); runnable = new Runnable() { @Override public void run() { refreshProgram(); handler.postDelayed(this, 60000);//一分钟刷新一次 } }; handler.postDelayed(runnable, 60000); } private void setAction(final View view) { btnTitle.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // Toast.makeText(view.getContext(), "点击了Title", Toast.LENGTH_SHORT).show(); //待完成...... } }); textTitle.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Toast.makeText(view.getContext(), "点击了TitleBar", Toast.LENGTH_SHORT).show(); textTitle.setVisibility(View.INVISIBLE); } }); btnMenu.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { drawerUtil.openCloseDrawerLayout(); } }); } private void setTitleCount(){ if (global.isUserLogin()) { InformationDBService iService = new InformationDBService(getActivity()); int Count=iService.queryUnreadInfoCount(global.getUserHashCode(),global.getExhibitionHashCode()); if(Count > 0){ textTitle.setVisibility(View.VISIBLE); textTitle.setText(Count+""); }else{ textTitle.setVisibility(View.GONE); } } } //.......... @SuppressLint("SimpleDateFormat") private ArrayList<MyInformationItemBean> getmylist(){ ArrayList<MyInformationItemBean> list = new ArrayList<MyInformationItemBean>(); if (global.isUserLogin()) { InformationDBService iService = new InformationDBService(getActivity()); DBInfoList = iService.queryAll(global.getUserHashCode(),global.getExhibitionHashCode()); if(DBInfoList != null && DBInfoList.size()>0){ for(int i=0;i<DBInfoList.size();i++){ MyInformationItemBean bean = new MyInformationItemBean(); Constants covterType=new Constants(); bean.setInformationContent(covterType.typeToName(DBInfoList.get(i).getType())+": "+DBInfoList.get(i).getName()); bean.setInformationTime(new SimpleDateFormat("yyyy.MM.dd HH:mm:ss").format(new Date(DBInfoList.get(i).getBeginTime()))); bean.setFlag(DBInfoList.get(i).getReadFlag()); list.add(i, bean); } } } return list; } public ArrayList<HashMap<String,Object>> getItem(){ ArrayList<HashMap<String, Object>> item = new ArrayList<HashMap<String, Object>>(); MyInformationItemBean bean = new MyInformationItemBean(); for (int i = 0; i < getmylist().size(); i++) { bean = getmylist().get(i); HashMap<String, Object> map = new HashMap<String, Object>(); map.put("information", bean.getInformationContent()); map.put("informationtime", bean.getInformationTime()); map.put("flag", bean.getFlag()); item.add(map); } return item; } }
一个新的Activity跳转到带有Framgment的Activity页面
标签:des android style blog io ar color os sp
原文地址:http://www.cnblogs.com/SeawinLong/p/4127474.html