@Override
 public void onClick(View v) {
   String content = contentEditText.getText().toString();
   String contact = "";
   if (token != null && !token.equals("")) {
     contact = TravelApplication.getInstance().getLoginID();
   } else {
     contact = contactEditText.getText().toString();
   }
   Log.d(TAG, "contact == " + contact);
   if (content == null || content.trim().equals("")) {
     Toast.makeText(
             FeedBackActivity.this,
             getString(R.string.feedback_content_emtpy),
             Toast.LENGTH_SHORT)
         .show();
   } else if (contact == null || contact.trim().equals("")) {
     Toast.makeText(
             FeedBackActivity.this,
             getString(R.string.feedback_contact_emtpy),
             Toast.LENGTH_SHORT)
         .show();
   } else {
     boolean isNumber = TravelUtil.isNumber(contact);
     boolean isEmail = TravelUtil.isEmail(contact);
     if (!isNumber && !isEmail) {
       Toast.makeText(
               FeedBackActivity.this,
               getString(R.string.feedback_contact_error),
               Toast.LENGTH_SHORT)
           .show();
     } else {
       try {
         content = URLEncoder.encode(content, "UTF-8");
       } catch (UnsupportedEncodingException e) {
         e.printStackTrace();
       }
       String userId = UserManager.getInstance().getUserId(FeedBackActivity.this);
       String feedBackUrl = String.format(ConstantField.FEED_BACK, userId, contact, content);
       FeedbackMission feedbackMission = new FeedbackMission();
       boolean result = feedbackMission.submitFeedback(feedBackUrl);
       if (result) {
         Toast.makeText(
                 FeedBackActivity.this,
                 getString(R.string.feedback_submit_success),
                 Toast.LENGTH_SHORT)
             .show();
         contactEditText.setText("");
         contentEditText.setText("");
       } else {
         Toast.makeText(
                 FeedBackActivity.this,
                 getString(R.string.feedback_submit_fail),
                 Toast.LENGTH_SHORT)
             .show();
       }
     }
   }
 }
 public ArrayList<Place> getFunListOrderByrank() {
   ComparatorRank comparatorRank = TravelUtil.getComparatorRank();
   Collections.sort(entertrainList, comparatorRank);
   return entertrainList;
 }
 public ArrayList<Place> getShoppingListOrderByrank() {
   ComparatorRank comparatorRank = TravelUtil.getComparatorRank();
   Collections.sort(shoppingList, comparatorRank);
   return shoppingList;
 }
 public ArrayList<Place> getRestraurantListOrderByrank() {
   ComparatorRank comparatorRank = TravelUtil.getComparatorRank();
   Collections.sort(restraurantList, comparatorRank);
   return restraurantList;
 }
 public ArrayList<Place> getHotelListOrderByrank() {
   ComparatorRank comparatorRank = TravelUtil.getComparatorRank();
   Collections.sort(hotelList, comparatorRank);
   return hotelList;
 }
  private void init() {
    place = getPlaceById();
    if (place != null) {
      currentCityId = place.getCityId();
      nearbyPlaceList = new ArrayList<Place>();
      List<String> imagePath = place.getImagesList();
      LayoutInflater inflater = getLayoutInflater();
      ArrayList<View> imageViewlist = new ArrayList<View>();
      imageLoader = ImageLoader.getInstance();
      int size = imagePath.size();
      String url = "";
      View view = null;
      ImageView imageView = null;
      for (int i = 0; i < size; i++) {
        view = inflater.inflate(R.layout.place_detail_image, null);
        imageView = (ImageView) view.findViewById(R.id.place_image_item);
        url = imagePath.get(i);
        url = TravelUtil.getImageUrl(currentCityId, url);
        imageLoader.displayImage(url, imageView);
        imageViewlist.add(view);
      }
      imageViews = new ImageView[size];
      main = (ViewGroup) inflater.inflate(R.layout.common_place_detail, null);
      ViewGroup group = (ViewGroup) main.findViewById(R.id.place_images_group);
      ViewPager placeImage = (ViewPager) main.findViewById(R.id.place_images);
      LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(10, 10);
      params.setMargins(
          (int) getResources().getDimension(R.dimen.image_margin),
          0,
          (int) getResources().getDimension(R.dimen.image_margin),
          0);
      for (int i = 0; i < size; i++) {
        imageView = new ImageView(CommonPlaceDetailActivity.this);
        imageView.setLayoutParams(params);
        imageViews[i] = imageView;
        if (i == 0) {
          imageViews[i].setBackgroundResource(R.drawable.guide_dot_white);
        } else {
          imageViews[i].setBackgroundResource(R.drawable.guide_dot_black);
        }
        group.addView(imageView);
      }
      PlaceImageAdapter sceneryAdapter = new PlaceImageAdapter(imageViewlist);
      if (isSupportService()) {
        ViewGroup serviceGroup = (ViewGroup) main.findViewById(R.id.proServiceGroup);
        serviceGroup.setVisibility(View.VISIBLE);
        ImageView serviceImageView = null;
        LayoutParams layoutParams =
            new LayoutParams(
                (int) this.getResources().getDimension(R.dimen.service_icon2),
                LayoutParams.WRAP_CONTENT);
        for (int id : place.getProvidedServiceIdList()) {

          serviceImageView = new ImageView(CommonPlaceDetailActivity.this);
          serviceImageView.setLayoutParams(layoutParams);
          serviceImageView.setScaleType(ScaleType.FIT_CENTER);
          serviceImageView.setImageResource(TravelUtil.getServiceImage(id));
          serviceGroup.addView(serviceImageView);
        }
      }

      placeImage.setAdapter(sceneryAdapter);
      placeImage.setOnPageChangeListener(placeImageOnPageChangeListener);
      setContentView(main);

      if (isSupportSpecialTrafficStyle()) {
        main.findViewById(R.id.special_trans_group).setVisibility(View.VISIBLE);
        String trafficInfos = place.getTransportation();
        trafficInfos = trafficInfos.replaceAll(":;", "").trim();
        String[] traffic = trafficInfos.split(";");
        specialTrans = (ViewGroup) main.findViewById(R.id.special_trans);
        if (traffic.length > 0) {
          int i = 1;
          String[] trafficDetail = null;
          RelativeLayout.LayoutParams params1 =
              new RelativeLayout.LayoutParams(
                  (int) getResources().getDimension(R.dimen.special_traffic_loaction),
                  LayoutParams.WRAP_CONTENT);
          RelativeLayout.LayoutParams params2 =
              new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
          LayoutParams params3 =
              new LayoutParams(
                  (int) getResources().getDimension(R.dimen.transport_width),
                  (int) getResources().getDimension(R.dimen.transport_height));
          for (String trafficInfo : traffic) {
            row = new RelativeLayout(CommonPlaceDetailActivity.this);
            row.setLayoutParams(params3);
            if (i == traffic.length) {
              row.setBackgroundDrawable(getResources().getDrawable(R.drawable.table5_down));
            } else {
              row.setBackgroundDrawable(getResources().getDrawable(R.drawable.table5_center));
            }

            trafficDetail = trafficInfo.split(":");
            if (trafficDetail.length == 2) {
              locationTextView = new TextView(CommonPlaceDetailActivity.this);
              distanceTextView = new TextView(CommonPlaceDetailActivity.this);
              params1.addRule(RelativeLayout.ALIGN_PARENT_LEFT, RelativeLayout.TRUE);
              params1.addRule(RelativeLayout.CENTER_VERTICAL, RelativeLayout.TRUE);
              params1.setMargins(
                  (int) getResources().getDimension(R.dimen.transport_margin_left), 0, 0, 0);
              params2.addRule(RelativeLayout.ALIGN_PARENT_LEFT, RelativeLayout.TRUE);
              params2.addRule(RelativeLayout.CENTER_VERTICAL, RelativeLayout.TRUE);
              params2.setMargins(
                  (int) getResources().getDimension(R.dimen.transport_margin_right), 0, 0, 0);
              locationTextView.setLayoutParams(params1);
              distanceTextView.setLayoutParams(params2);
              locationTextView.setTextColor(getResources().getColor(R.color.place_price_color));
              locationTextView.setTextSize(
                  getResources().getDimension(R.dimen.transport_text_size));
              locationTextView.setSingleLine(true);
              locationTextView.setMarqueeRepeatLimit(-1);
              locationTextView.setEllipsize(TruncateAt.MARQUEE);
              locationTextView.setHorizontallyScrolling(true);
              locationTextView.setSelected(true);
              distanceTextView.setTextColor(getResources().getColor(R.color.place_price_color));
              distanceTextView.setTextSize(
                  getResources().getDimension(R.dimen.transport_location_text_size));
              locationTextView.setText(trafficDetail[0]);
              distanceTextView.setText(trafficDetail[1]);
              row.addView(locationTextView);
              row.addView(distanceTextView);
              specialTrans.addView(row, i);
            }
            i++;
          }
        }

      } else {
        main.findViewById(R.id.transport_group).setVisibility(View.VISIBLE);
        TextView transport = (TextView) main.findViewById(R.id.transport);
        transport.setSelected(true);
        transport.setText(place.getTransportation());
      }

      // ticket
      if (isSupportTicket()) {
        String priceDescription = place.getPriceDescription();
        if (priceDescription != null && !priceDescription.equals("")) {
          findViewById(R.id.ticket_group).setVisibility(View.VISIBLE);
          TextView ticket = (TextView) findViewById(R.id.ticket);
          ticket.setText(priceDescription);
        }
      }

      // food
      if (isSupportFood()) {
        String footCate = AppManager.getInstance().getAllSubCatMap().get(place.getSubCategoryId());
        if (footCate != null && !footCate.equals("")) {
          findViewById(R.id.food_group).setVisibility(View.VISIBLE);
          TextView food = (TextView) findViewById(R.id.food);
          food.setText(footCate);
        }
      }

      // openTime
      if (isSupportOpenTime()) {
        String openTimeString = place.getOpenTime();
        if (openTimeString != null && !openTimeString.equals("")) {
          findViewById(R.id.open_time_group).setVisibility(View.VISIBLE);
          if (place.getCategoryId() != PlaceCategoryType.PLACE_SPOT_VALUE) {
            TextView openTimeTitle = (TextView) findViewById(R.id.open_time_title);
            openTimeTitle.setText(getString(R.string.open_time1));
          }

          TextView openTime = (TextView) findViewById(R.id.open_time);
          openTime.setText(openTimeString);
        }
      }

      // avgPrice
      if (isSupportAvgPrice()) {
        String avePriceString = place.getAvgPrice();
        if (avePriceString != null && !avePriceString.equals("")) {
          findViewById(R.id.avg_price_group).setVisibility(View.VISIBLE);
          TextView avgPrice = (TextView) findViewById(R.id.avg_price);
          HashMap<Integer, String> symbolHashMap = AppManager.getInstance().getSymbolMap();
          StringBuffer symbol = new StringBuffer();
          if (symbolHashMap.containsKey(currentCityId)) {
            String symbolStr = symbolHashMap.get(currentCityId);
            symbol.append(symbolStr);
          }
          avgPrice.setText(symbol + avePriceString);
        }
      }

      // specialFood
      if (isSupportSpecialFood()) {
        List<String> typcialDisList = place.getTypicalDishesList();
        if (typcialDisList != null && typcialDisList.size() > 0) {
          findViewById(R.id.special_food_group).setVisibility(View.VISIBLE);
          TextView specialFood = (TextView) findViewById(R.id.special_food);
          StringBuffer typicalDishes = new StringBuffer();
          for (String typcial : typcialDisList) {
            typicalDishes.append(typcial);
            typicalDishes.append("  ");
          }
          specialFood.setText(typicalDishes);
        }
      }

      // tips
      if (isSupportTips()) {
        String tipsString = place.getTips();
        if (tipsString != null && !tipsString.equals("")) {
          findViewById(R.id.tips_group).setVisibility(View.VISIBLE);
          TextView tipsTitles = (TextView) findViewById(R.id.tips_title);
          TextView tips = (TextView) findViewById(R.id.tips);
          tipsTitles.setText(tipsTitle);
          tips.setText(tipsString);
        }
      }

      // park
      if (isSupportPark()) {
        String parkGuideString = place.getParkingGuide();
        if (parkGuideString != null && !parkGuideString.equals("")) {
          findViewById(R.id.park_group).setVisibility(View.VISIBLE);
          TextView park = (TextView) findViewById(R.id.park);
          park.setText(place.getParkingGuide());
        }
      }

      // hotelStart
      if (isSupportHotelStart()) {
        int hotelStartLevel = place.getHotelStar();
        if (hotelStartLevel > 0) {
          findViewById(R.id.hotel_start_group).setVisibility(View.VISIBLE);
          TextView hotelStart = (TextView) findViewById(R.id.hotel_start);
          hotelStart.setText(TravelUtil.getHotelStar(this, hotelStartLevel));
          ViewGroup hotelStartImageGroup = (ViewGroup) findViewById(R.id.hotel_start_image);
          ImageView hotelStartImage;
          LayoutParams layoutParams =
              new LayoutParams(
                  (int) this.getResources().getDimension(R.dimen.hotel_start_icon),
                  LayoutParams.WRAP_CONTENT);
          for (int i = 0; i < place.getHotelStar(); i++) {

            hotelStartImage = new ImageView(CommonPlaceDetailActivity.this);
            hotelStartImage.setLayoutParams(layoutParams);
            hotelStartImage.setPadding(0, 0, 5, 0);
            hotelStartImage.setScaleType(ScaleType.FIT_CENTER);
            hotelStartImage.setImageResource(R.drawable.star_ico);
            hotelStartImageGroup.addView(hotelStartImage);
          }
        }
      }

      // keyword
      if (isSupportKeyWords()) {
        List<String> keyList = place.getKeywordsList();
        if (keyList != null && keyList.size() > 0) {
          findViewById(R.id.keyword_group).setVisibility(View.VISIBLE);
          TextView keyword = (TextView) findViewById(R.id.place_keyword);
          StringBuffer keywordStr = new StringBuffer();
          for (String key : keyList) {
            keywordStr.append(key);
            keywordStr.append("、");
          }
          if (keywordStr.length() > 1) {
            keyword.setText(keywordStr.substring(0, keywordStr.length() - 1));
          }
        }
      }

      // roomprice
      if (isSupportRoomPrice()) {
        String priceString = place.getPrice();
        if (priceString != null && !priceString.equals("")) {
          findViewById(R.id.room_price_group).setVisibility(View.VISIBLE);
          TextView roomPrice = (TextView) findViewById(R.id.room_price);
          HashMap<Integer, String> symbolHashMap = AppManager.getInstance().getSymbolMap();
          StringBuffer symbol = new StringBuffer();
          if (symbolHashMap.containsKey(currentCityId)) {
            String symbolStr = symbolHashMap.get(currentCityId);
            symbol.append(symbolStr);
          }
          symbol.append(priceString);
          symbol.append("起");
          roomPrice.setText(symbol);
        }
      }

      ImageView recommendImage1 = (ImageView) findViewById(R.id.place_detail_recommend_image1);
      ImageView recommendImage2 = (ImageView) findViewById(R.id.place_detail_recommend_image2);
      ImageView recommendImage3 = (ImageView) findViewById(R.id.place_detail_recommend_image3);

      TextView placeDetailTitle = (TextView) findViewById(R.id.place_detail_title);
      TextView placeIntroTitle = (TextView) findViewById(R.id.place_intro_title);
      TextView placeIntro = (TextView) findViewById(R.id.place_intro);
      placeDetailTitle.setText(place.getName());
      placeIntroTitle.setText(getPlaceIntroTitle());
      String introduction = place.getIntroduction();
      introduction = TravelUtil.handlerString(introduction);
      placeIntro.setText("		" + introduction);

      int rank = place.getRank();
      switch (rank) {
        case 1:
          {
            recommendImage1.setImageDrawable(this.getResources().getDrawable(R.drawable.good));
            recommendImage2.setImageDrawable(this.getResources().getDrawable(R.drawable.good2));
            recommendImage3.setImageDrawable(this.getResources().getDrawable(R.drawable.good2));
          }
          break;
        case 2:
          {
            recommendImage1.setImageDrawable(this.getResources().getDrawable(R.drawable.good));
            recommendImage2.setImageDrawable(this.getResources().getDrawable(R.drawable.good));
            recommendImage3.setImageDrawable(this.getResources().getDrawable(R.drawable.good2));
          }
          break;
        case 3:
          {
            recommendImage1.setImageDrawable(this.getResources().getDrawable(R.drawable.good));
            recommendImage2.setImageDrawable(this.getResources().getDrawable(R.drawable.good));
            recommendImage3.setImageDrawable(this.getResources().getDrawable(R.drawable.good));
          }
          break;
        default:
          break;
      }

      if (place.getTelephoneList().size() > 0) {
        ViewGroup phoneGroup = (ViewGroup) findViewById(R.id.phone_group);
        phoneNum = (TextView) findViewById(R.id.phone_num);
        phoneNum.setSelected(true);
        ImageView phoneCall = (ImageView) findViewById(R.id.phone_call);
        phoneGroup.setVisibility(View.VISIBLE);
        StringBuffer phoneNumber = new StringBuffer();
        for (String telephone : place.getTelephoneList()) {
          phoneNumber.append(telephone);
          phoneNumber.append(" ");
        }
        phoneNum.setText(getString(R.string.phone_number) + " " + phoneNumber);
        phoneCall.setOnClickListener(phoneCallOnClickListener);
        phoneGroup.setOnClickListener(phoneCallOnClickListener);
      }

      if (place.getAddressList().size() > 0) {
        ViewGroup addressGroup = (ViewGroup) findViewById(R.id.address_group);
        TextView address = (TextView) findViewById(R.id.address);
        address.setSelected(true);
        ImageView addressMapView = (ImageView) findViewById(R.id.address_map_view);
        addressGroup.setVisibility(View.VISIBLE);
        StringBuffer addressStr = new StringBuffer();
        for (String addres : place.getAddressList()) {
          addressStr.append(addres);
          addressStr.append(" ");
        }
        address.setText(getString(R.string.address) + " " + addressStr);
        addressMapView.setOnClickListener(addressLocateOnClickListener);
        addressGroup.setOnClickListener(addressLocateOnClickListener);
      }

      if (place.getWebsite() != null && !place.getWebsite().equals("")) {
        ViewGroup websiteGroup = (ViewGroup) findViewById(R.id.website_group);
        websiteGroup.setVisibility(View.VISIBLE);
        TextView website = (TextView) findViewById(R.id.website);
        website.setText(place.getWebsite());
      }
      nearbyListGroup = (ViewGroup) findViewById(R.id.nearby_list_group);
      favoriteCount = (TextView) findViewById(R.id.favorite_count);
      collect = (TextView) findViewById(R.id.collect);
      collectBtn = (ImageView) findViewById(R.id.collect_btn);
      collectBtn.setOnClickListener(addFavoriteOnClickListener);
      ImageButton locationButton = (ImageButton) findViewById(R.id.location_button);
      Button indexButton = (Button) findViewById(R.id.index_button);
      indexButton.setOnClickListener(indexOnClickListener);
      ImageView help2Button = (ImageView) findViewById(R.id.help2);
      locationButton.setOnClickListener(locationOnClickListener);
      help2Button.setOnClickListener(helpOnClickListener);
    }
  }