本人菜鸟一枚,接触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