我想显示下图所示的微调框列表中所选时区的UTC时间的敬酒消息。
下面是我的代码:
Spinner tz;
tz = (Spinner) findViewById(R.id.edit);
String[] idArray = TimeZone.getAvailableIDs();
ArrayAdapter<String> idAdapter = new ArrayAdapter<>(getApplicationContext(),R.layout.custom,idArray);
idAdapter.setDropDownViewResource(R.layout.custom);
tz.setAdapter(idAdapter);
for(int i = 0; i < idAdapter.getCount(); i++) {
if(idAdapter.getItem(i).equals(TimeZone.getDefault().getID())) {
tz.setSelection(i);
}
}
我已经尝试过了但是无法得到我的结果
http://developer.android.com/reference/java/util/TimeZone.html#getDisplayName%28boolean
最佳答案
为此,必须使用setOnItemSelectedListener。用法示例如下所示。
tz.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parentView, View selectedItemView, int position, long id) {
SimpleDateFormat df = new SimpleDateFormat("dd MMM HH:mm a", Locale.getDefault());
df.setTimeZone(TimeZone.getTimeZone(idAdapter.getItem(position))); //format in given timezone
String strDate = df.format((new Date()).getTime());
//Display the Toast
Toast.makeText(getApplicationContext(), strDate, Toast.LENGTH_LONG).show();
}
@Override
public void onNothingSelected(AdapterView<?> parentView) {
// your code here
}
});
请注意,在构建视图时也会调用onItemSelected方法,因此可以考虑将其放入onCreate()方法调用中。
希望这可以帮助。