小编Ian*_*lie的帖子

如何在Java中设置尊重用户操作系统设置的日期和时间格式

我在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编程站点搜索并找不到答案,但这似乎是一件显而易见的事情,我觉得我错过了一些明显的东西.

java windows formatting date

13
推荐指数
3
解决办法
8472
查看次数

试图用runQueryOnBackgroundThread过滤ListView但没有任何反应 - 我错过了什么?

我有一个数据库中的国家列表.我创建了一个选择国家/地区活动,其中包含一个用于过滤的编辑框和一个显示标记和国家/地区名称的列表.

当活动开始时,列表显示按字母顺序排序的整个国家/地区列表 - 工作正常.当客户开始在搜索框中输入内容时,我希望根据他们的输入过滤列表.我的数据库查询以前在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)

android listview

6
推荐指数
2
解决办法
7106
查看次数

如何在我的资产中获取适用于SearchManager.SUGGEST_COLUMN_ICON_1列的图像的Uri?

我已成功将我的应用程序的国家/地区搜索整合到全局搜索工具中,现在我正在尝试在搜索建议旁边显示每个国家/地区的标记.在我的应用程序内部搜索以这种方式工作,但当然我可以控制列表及其视图绑定自己.所以我知道标志都在那里,我可以在我的应用程序的其余部分使用它们.

当我尝试将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)

search android

6
推荐指数
2
解决办法
4812
查看次数

标签 统计

android ×2

date ×1

formatting ×1

java ×1

listview ×1

search ×1

windows ×1