package com.partynetwork.iparty.nearby; import java.util.ArrayList; import java.util.List; import android.app.Activity; import android.content.Intent; import android.graphics.Color; import android.os.Bundle; import android.view.View; import android.widget.LinearLayout; import android.widget.RelativeLayout; import android.widget.TextView; import com.partynetwork.dataprovider.util.CityUtil; import com.partynetwork.dataprovider.util.StringUtil; import com.partynetwork.iparty.R; import com.partynetwork.myview.wheelview.ArrayWheelAdapter; import com.partynetwork.myview.wheelview.NumericWheelAdapter; import com.partynetwork.myview.wheelview.WheelAdapter; import com.partynetwork.myview.wheelview.WheelPicker; import com.partynetwork.myview.wheelview.WheelPicker.WheelListener; import com.partynetwork.myview.wheelview.WheelView; import com.lidroid.xutils.ViewUtils; import com.lidroid.xutils.view.annotation.ViewInject; import com.lidroid.xutils.view.annotation.event.OnClick; /** * 注册界面 * * @author sys * @version 1.1 * @since 2014.01.18 */ public class NearbyCustomActivity extends Activity { /* 控件声明注册 */ /** * 关闭按钮 */ @ViewInject(R.id.menu_head_left) LinearLayout backBtn; /** * 全部性别 */ @ViewInject(R.id.nearby_sex_all_ll) LinearLayout sex_all; /** * 男性别 */ @ViewInject(R.id.nearby_sex_man_ll) LinearLayout sex_man; /** * 女性别 */ @ViewInject(R.id.nearby_sex_women_ll) LinearLayout sex_women; /** * 其他性别 */ @ViewInject(R.id.nearby_sex_other_ll) LinearLayout sex_other; // 性别列表 private List<LinearLayout> sexList = new ArrayList<LinearLayout>(); /** * 默认15分钟 */ @ViewInject(R.id.nearby_time_moment_ll) LinearLayout time_moment; /** * 一个小时 */ @ViewInject(R.id.nearby_time_hour_ll) LinearLayout time_hour; /** * 一天 */ @ViewInject(R.id.nearby_time_day_ll) LinearLayout time_day; /** * 三天 */ @ViewInject(R.id.nearby_time_days_ll) LinearLayout time_days; // 时间列表 private List<LinearLayout> timeList = new ArrayList<LinearLayout>(); /** * 年龄 */ @ViewInject(R.id.nearby_custom_age_rl) RelativeLayout age; @ViewInject(R.id.nearby_custom_age_tv) TextView age_tv; /** * 距离 */ @ViewInject(R.id.nearby_custom_distance_rl) RelativeLayout distance; @ViewInject(R.id.nearby_custom_distance_tv) TextView distance_tv; /** * 城市 */ @ViewInject(R.id.nearby_custom_city_rl) RelativeLayout city; @ViewInject(R.id.nearby_custom_city_tv) TextView city_tv; /** * 确定 */ @ViewInject(R.id.nearby_ok_rl) RelativeLayout okBtn; /** 滚轮弹窗 */ private WheelPicker agePicker; private WheelPicker distancePicker; private WheelPicker cityPicker; protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.nearby_custom); ViewUtils.inject(this); init(); } private void init() { sexList.add(sex_all); sexList.add(sex_man); sexList.add(sex_women); sexList.add(sex_other); timeList.add(time_moment); timeList.add(time_hour); timeList.add(time_day); timeList.add(time_days); agePicker = new WheelPicker(this,2, new NumericWheelAdapter(18, 100), ageWheelListener); String dis[] = new String[] { "0.5km", "1km", "2km", "3km", "5km", "10km", "30km", "50km", "100km" }; distancePicker=new WheelPicker(this, 1, new ArrayWheelAdapter<String>(dis), distanceWheelListener); cityPicker=new WheelPicker(this,2, new ArrayWheelAdapter<String>(CityUtil.getProvinceName()), cityWheelListener); } @OnClick({ R.id.menu_head_left, R.id.nearby_sex_all_ll, R.id.nearby_sex_man_ll, R.id.nearby_sex_women_ll, R.id.nearby_sex_other_ll, R.id.nearby_time_moment_ll, R.id.nearby_time_hour_ll, R.id.nearby_time_day_ll, R.id.nearby_time_days_ll, R.id.nearby_custom_age_rl, R.id.nearby_custom_distance_rl, R.id.nearby_custom_city_rl, R.id.nearby_ok_rl }) public void btnClick(View v) { switch (v.getId()) { case R.id.menu_head_left: finish(); // 界面消失动画 overridePendingTransition(R.anim.animation_enterfromleft, R.anim.animation_fadefromright); break; case R.id.nearby_sex_all_ll: selectSex(0); break; case R.id.nearby_sex_man_ll: selectSex(1); break; case R.id.nearby_sex_women_ll: selectSex(2); break; case R.id.nearby_sex_other_ll: selectSex(3); break; case R.id.nearby_time_moment_ll: selectTime(0); break; case R.id.nearby_time_hour_ll: selectTime(1); break; case R.id.nearby_time_day_ll: selectTime(2); break; case R.id.nearby_time_days_ll: selectTime(3); break; case R.id.nearby_custom_age_rl: // 年龄选择 agePicker.showAt(backBtn); break; case R.id.nearby_custom_distance_rl: // 距离选择 distancePicker.showAt(backBtn); break; case R.id.nearby_custom_city_rl: // 城市选择 cityPicker.showAt(backBtn); break; case R.id.nearby_ok_rl: finish(); break; default: break; } } /** * 设置性别的选中效果 * * @param id */ private void selectSex(int id) { for (int i = 0; i < sexList.size(); i++) { LinearLayout ll = sexList.get(i); TextView tv = (TextView) ll.findViewById(R.id.tv); if (i == id) { if (i == 0) { ll.setBackgroundResource(R.drawable.stroke_left_select); } else if (i == sexList.size() - 1) { ll.setBackgroundResource(R.drawable.stroke_right_select); } else { ll.setBackgroundResource(R.drawable.stroke_center_select); } tv.setTextColor(Color.WHITE); } else { if (i == 0) { ll.setBackgroundResource(R.drawable.stroke_left); } else if (i == sexList.size() - 1) { ll.setBackgroundResource(R.drawable.stroke_right); } else { ll.setBackgroundResource(R.drawable.stroke_center); } tv.setTextColor(Color.BLACK); } } } /** * 设置时间的选中效果 * * @param id */ private void selectTime(int id) { for (int i = 0; i < timeList.size(); i++) { LinearLayout ll = timeList.get(i); TextView tv = (TextView) ll.findViewById(R.id.tv); if (i == id) { if (i == 0) { ll.setBackgroundResource(R.drawable.stroke_left_select); } else if (i == timeList.size() - 1) { ll.setBackgroundResource(R.drawable.stroke_right_select); } else { ll.setBackgroundResource(R.drawable.stroke_center_select); } tv.setTextColor(Color.WHITE); } else { if (i == 0) { ll.setBackgroundResource(R.drawable.stroke_left); } else if (i == timeList.size() - 1) { ll.setBackgroundResource(R.drawable.stroke_right); } else { ll.setBackgroundResource(R.drawable.stroke_center); } tv.setTextColor(Color.BLACK); } } } @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { switch (requestCode) { case 0: // 设置城市 // city_text.setText(data.getStringExtra("city")); break; default: break; } } /** * 年龄滚轮的监听 */ private WheelListener ageWheelListener = new WheelListener() { @Override public WheelAdapter onChange(WheelView wheel, int oldValue, int newValue) { return new NumericWheelAdapter(Integer.parseInt(wheel .getTextItem(wheel.getCurrentItem())), 100); } @Override public void confirm(String str) { StringUtil.setText(age_tv, str); } @Override public void cancel() { age_tv.setText("不限"); } }; /** * 距离滚轮的监听 */ private WheelListener distanceWheelListener = new WheelListener() { @Override public WheelAdapter onChange(WheelView wheel, int oldValue, int newValue) { // TODO 自动生成的方法存根 return null; } @Override public void confirm(String str) { StringUtil.setText(distance_tv, str); } @Override public void cancel() { distance_tv.setText("不限"); } }; /** * 城市滚轮的监听 */ private WheelListener cityWheelListener = new WheelListener() { @Override public WheelAdapter onChange(WheelView wheel, int oldValue, int newValue) { return new ArrayWheelAdapter<String>( CityUtil.getCityList4ProvinceIndex(newValue)); } @Override public void confirm(String str) { StringUtil.setText(city_tv, str); } @Override public void cancel() { city_tv.setText("不限"); } }; }