android - 如何从android中的onSuggestionClick(int position)中的位置获取值(value)

标签 android

我想从 onSuggestionClick(int position) 中的位置参数获取值。对应于每个选择,方法中传递一个位置。如何从位置获取字符串值?

方法是:

 public boolean onSuggestionClick(int position)
            {
                // Your code here
            String selectedItem = (String)mAdapter.getItem(position);
            Toast.makeText(getBaseContext()," on suggestion click position and item is" + position + selectedItem, Toast.LENGTH_LONG).show();


                startActivity(new Intent(getBaseContext(), SearchResultsActivity.class));

                return true;
            }

对应的适配器是:

final String[] from = new String[] {"cityName"};
        final int[] to = new int[] {android.R.id.text1};
        mAdapter = new SimpleCursorAdapter(this,
                android.R.layout.simple_list_item_2,
                null,
                from,
                to,
                CursorAdapter.FLAG_REGISTER_CONTENT_OBSERVER);

        search.setSuggestionsAdapter(mAdapter);

我收到以下错误:

java.io.IOException at android.accounts.AccountManager.convertErrorToException

最佳答案

position 参数返回所点击项目在显示的建议列表中的绝对位置。

mAdapterSimpleCursorAdapter 的对象

public SimpleCursorAdapter mAdapter;

下面的代码是获取点击建议的文本值

SearchView searchView = (SearchView) MenuItemCompat.getActionView(menu.findItem(R.id.action_search));
searchView.setIconifiedByDefault(false);
SearchManager searchManager = (SearchManager) getSystemService(SEARCH_SERVICE);
searchView.setSearchableInfo(searchManager.getSearchableInfo(getComponentName()));
searchView.setSuggestionsAdapter(mAdapter);
searchView.setOnSuggestionListener(new SearchView.OnSuggestionListener() {
    @Override
    public boolean onSuggestionClick(int position) {
        Cursor cursor = mAdapter.getCursor();
        cursor.moveToPosition( position );
        columnIndex = 1 /* Set your column index*/
        String selectedItem = cursor.getString(columnIndex);
        Log.d("Clicked Item", selectedItem);
        return true;
    }

    @Override
    public boolean onSuggestionSelect(int position) {
        /* Write your code */
        return true;
    }
});

日志: LogCat Print

搜索界面: Search UI

关于android - 如何从android中的onSuggestionClick(int position)中的位置获取值(value),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30887264/

相关文章:

android - Caused by : org. w3c.dom.DOMException: 只允许一个根元素

安卓工作室 : Shutdown Ubuntu 15. 10

android - 在 Visual Studio 2017 中找不到 API 级别 26 的 android.jar

java - 未捕获匿名内部类中抛出的异常

android - 当我在 Kotlin 中使用 Anko 时,如何为 SQLite 的表定义一个非空字段?

java - 如何从适配器Android调用 fragment 中的方法

java - 作用于 View 时出现 NullPointerException

java - Libgdx 无法为目标 linux 32 位加载共享库 gdx freetype,我该如何解决?

android - 如何取消应用程序与 Admob 的关联

android - 在 Android 应用程序中是否可能出现类似试用的行为