Android 仿DatePickerDialog 自定义的CityPickerDialog

本人菜鸟一枚,接触android没有多久。这也是我的一篇博客,由于经常在CSDN上看到大神给出的解决办法,所以决定把自己在项目中碰到的一些问题及解决办法分享出来。

好吧回归正题,我在设计用户资料编辑界面时需要用到更改用户的出生日期、所在城市,在出身日期的控件上很容易就找到了解决办法:DatePickerDialog 。但是在所在城市方面竟然发现android没有提供!!!于是我就不停的百度,终于发现了一个大神写的CityPicker的自定义控件,于是我就直接拿来修改基本达到了我的需求,当然可能有不少的BUG和可以优化的地方,但是项目时间很紧迫没有多余的时间来研究。所以希望各位大神能提出宝贵的意见。

   这里只给出界面的显示效果,源码可以下载来仔细研究修改。


需要注意的地方是将工程中的所有文件导入项目中,特别是gson包和assets目录下的json文件


界面实现的源码

</pre><pre name="code" class="java">package com.zihao.city;

import com.zihao.city.CityPicker.OnSelectingListener;
import com.zihao.city.R;

import android.os.Bundle;
import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup.LayoutParams;
import android.view.Window;
import android.view.WindowManager;
import android.widget.TextView;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;

public class MainActivity extends Activity {

	private CityPicker cityPicker;
   private TextView textView;
   String cityname;
//   private OnSelectingListener listener;
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		
		textView=(TextView) findViewById(R.id.city_name);
   
		
		textView.setOnClickListener(new View.OnClickListener() {
			
			@SuppressLint("NewApi") @Override
			public void onClick(View arg0) {
				// TODO Auto-generated method stub
				LayoutInflater layoutInflater=LayoutInflater.from(MainActivity.this);
				View view=layoutInflater.inflate(R.layout.citypicker_dialog, null);
				AlertDialog.Builder builder=new AlertDialog.Builder(MainActivity.this);
				cityPicker = (CityPicker) view.findViewById(R.id.citypicker);

				cityPicker.setOnSelectingListener(new OnSelectingListener() {
					
					@Override
					public void selected(boolean selected) {
						// TODO Auto-generated method stub
						cityname=cityPicker.getCity_string();
					
					}
				});
				builder.setTitle("选择城市列表");
				builder.setView(view);
				builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {
					
					@Override
					public void onClick(DialogInterface arg0, int arg1) {
						// TODO Auto-generated method stub
						textView.setText(cityname);
					}
				});
				builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {
					
					@Override
					public void onClick(DialogInterface arg0, int arg1) {
						// TODO Auto-generated method stub
						
					}
				});
				builder.show();
			}
		});
	}

}

额,我还不知道怎么上传文件,源码稍后会上传。有什么意见和建议可以与我联系,谢谢!

源码下载地址:http://download.csdn.net/detail/tzr0330/8286223

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值