android 中外城市列表,如何在android中的列表中显示国家和城市名称的时区?

该博客介绍了如何在Android中使用`Spinner`组件展示时区列表。通过`TimeZone.getAvailableIDs()`获取所有可用时区ID,创建自定义`CustomAdapter`继承`BaseAdapter`,并在`getView`方法中设置每个条目的时区信息。同时,代码还设置了默认选中的时区。博客内容涉及到Android UI开发、自定义适配器和时间处理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

解:-

private String[] timezoneArray;

private Spinner spinner_timezone;

spinner_timezone = (Spinner) findViewById(R.id.spinner_timezone);

然后打个电话

timezoneArray = TimeZone.getAvailableIDs();

CustomAdapter customAdapter = new CustomAdapter(getApplicationContext(), timezoneArray);

spinner_timezone.setAdapter(customAdapter);

for (int i = 0; i < timezoneArray.length; i++) {

if (timezoneArray[i].equals(TimeZone.getDefault().getID())) {

spinner_timezone.setSelection(i);

break;

}

}

那么 CustomAdapter 上课

public class CustomAdapter extends BaseAdapter {

Context context;

String[] countryNames;

LayoutInflater inflter;

public CustomAdapter(Context applicationContext, String[] countryNames) {

this.context = applicationContext;

this.countryNames = countryNames;

inflter = (LayoutInflater.from(applicationContext));

}

@Override

public int getCount() {

return countryNames.length;

}

@Override

public Object getItem(int i) {

return null;

}

@Override

public long getItemId(int i) {

return 0;

}

@Override

public View getView(int i, View view, ViewGroup viewGroup) {

view = inflter.inflate(R.layout.custom_spinner_items, null);

TextView names = (TextView) view.findViewById(R.id.textView);

names.setText(displayTimeZone(TimeZone.getTimeZone(countryNames[i])));

return view;

}

private String displayTimeZone(TimeZone tz) {

long hours = TimeUnit.MILLISECONDS.toHours(tz.getRawOffset());

long minutes = TimeUnit.MILLISECONDS.toMinutes(tz.getRawOffset())

- TimeUnit.HOURS.toMinutes(hours);

// avoid -4:-30 issue

minutes = Math.abs(minutes);

String result = "";

if (hours > 0) {

result = String.format("(GMT +%d:%02d) %s", hours, minutes, tz.getID());

} else {

result = String.format("(GMT %d:%02d) %s", hours, minutes, tz.getID());

}

return result;

}

}

和custom_spinner_items在这里

android:layout_width="match_parent"

android:layout_height="match_parent">

android:id="@+id/textView"

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:layout_gravity="center"

android:padding="10dp"

android:textSize="15sp"

android:text="Wifi Airtel"

android:textColor="#000" />

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值