我在Windows 7机器上运行我的Java应用程序,我的区域设置设置为将日期格式设置为YYYY-mm-dd,时间格式为HH:mm:ss(例如"2011-06-20 07:50:28") .但是当我DateFormat.getDateTimeInstance().format用来格式化我的约会时,我没有看到相反,我得到的是"20-Jun-2011 7:50:28 AM".我需要做什么来设置日期,以便客户将其操作系统设置为显示日期?
这是我的代码看起来像:
File selGameLastTurnFile = selectedGame.getLastTurn ().getTurnFile ();
Date selGameModifiedDate = new Date (selGameLastTurnFile.lastModified());
if (selectedGame.isYourTurn ()) {
gameInfo = Messages.getFormattedString ("WhoseTurnIsIt.Prompt.PlayTurn", //$NON-NLS-1$
FileHelper.getFileName (selGameLastTurnFile),
DateFormat.getDateTimeInstance().format(selGameModifiedDate));
} else {
gameInfo = Messages.getFormattedString ("WhoseTurnIsIt.Prompt.SentTurn", //$NON-NLS-1$
selGameLastTurnFile.getName (),
DateFormat.getDateTimeInstance().format(selGameModifiedDate));
}
Run Code Online (Sandbox Code Playgroud)
该Messages.getFormattedString呼叫使用MessageFormat把日期成句,这将是这样的:
转牌'QB Nat vs Ian 008'(收到20-Jun-2011 7:50:28 AM)
但是我的操作系统设置被设置为格式化日期,如上所述,我希望看到这个:
转牌'QB Nat vs Ian 008'(收到2011-06-20 07:50:28)
我在这里和其他Java编程站点搜索并找不到答案,但这似乎是一件显而易见的事情,我觉得我错过了一些明显的东西.
我有一个数据库中的国家列表.我创建了一个选择国家/地区活动,其中包含一个用于过滤的编辑框和一个显示标记和国家/地区名称的列表.
当活动开始时,列表显示按字母顺序排序的整个国家/地区列表 - 工作正常.当客户开始在搜索框中输入内容时,我希望根据他们的输入过滤列表.我的数据库查询以前在AutoCompleteView中工作(我只想切换到单独的文本框和列表)所以我知道我的完整查询和我的约束查询正在工作.我所做的就是添加一个TextWatcher到的EditText视图和每一个文本改变时我调用列表的SimpleCursorAdapter runQueryOnBackgroundThread与编辑框中的文本作为约束条件.问题是列表永远不会更新.我已经在调试器中设置断点和TextWatcher确实让呼叫runQueryOnBackgroundThread和我FilterQueryProvider被称为与预期约束.数据库查询正常,并返回光标.
游标适配器具有过滤器查询提供程序集(以及用于显示标志的视图绑定器):
SimpleCursorAdapter adapter = new SimpleCursorAdapter (this,
R.layout.country_list_row, countryCursor, from, to);
adapter.setFilterQueryProvider (new CountryFilterProvider ());
adapter.setViewBinder (new FlagViewBinder ());
Run Code Online (Sandbox Code Playgroud)
FitlerQueryProvider:
private final class CountryFilterProvider implements FilterQueryProvider {
@Override
public Cursor runQuery (CharSequence constraint) {
Cursor countryCursor = myDbHelper.getCountryList (constraint);
startManagingCursor (countryCursor);
return countryCursor;
}
}
Run Code Online (Sandbox Code Playgroud)
EditText有一个TextWatcher:
myCountrySearchText = (EditText)findViewById (R.id.entry);
myCountrySearchText.setHint (R.string.country_hint);
myCountrySearchText.addTextChangedListener (new TextWatcher() {
@Override
public void afterTextChanged (Editable s) {
SimpleCursorAdapter filterAdapter = (SimpleCursorAdapter)myCountryList.getAdapter ();
filterAdapter.runQueryOnBackgroundThread (s.toString ());
}
@Override
public void …Run Code Online (Sandbox Code Playgroud) 我已成功将我的应用程序的国家/地区搜索整合到全局搜索工具中,现在我正在尝试在搜索建议旁边显示每个国家/地区的标记.在我的应用程序内部搜索以这种方式工作,但当然我可以控制列表及其视图绑定自己.所以我知道标志都在那里,我可以在我的应用程序的其余部分使用它们.
当我尝试将Uri提供给我的Assets中的.gif文件时出现问题.根据搜索文档,带有键的列的值SearchManager.SUGGEST_COLUMN_ICON_1应该是图像的Uri.
下面是代码的样子.为了响应这种ContentProvider方法,public Cursor query (Uri uri, String[] projection, String selection, String[] selectionArgs, String sortOrder)我正在创建一个MatrixCursor将我的国家数据库中的列映射到搜索工具所需的列.国家名称显示正常,我可以选择它们并在我的申请中正确回复.
我试过用三种不同的方式形成Uri:
// String flagUri = "file:///android_asset/" + flagPath;
// String flagUri = "file:///assets/" + flagPath;
String flagUri = "android.resource://com.lesliesoftware.worldinfo.WorldInfoActivity/assets/" + flagPath;
columnValues.add (flagUri);
Run Code Online (Sandbox Code Playgroud)
它们都导致了同样的事情 - 我的每个建议旁边的应用程序图标,我可以通过使用空字符串的值获得.
有没有可行的Uri?如何在搜索建议旁边显示国家/地区标志图标?
谢谢伊恩
完整来源:
private Cursor search (String query, int limit) {
query = query.toLowerCase ();
String[] requestedColumns = new String[] {
BaseColumns._ID,
SearchManager.SUGGEST_COLUMN_TEXT_1,
SearchManager.SUGGEST_COLUMN_ICON_1,
};
String[] queryColumns = new String[] { …Run Code Online (Sandbox Code Playgroud)