单击外部时搜索视图中的文本如何清晰

时间:2014-11-19 16:58:07

标签: android menu searchview

我的应用中有搜索视图。还有菜单搜索。当我爬到外面时(例如在空旷的地方某处),如何从搜索视图中清除文本?我正在寻找问题的答案,但我觉得不合适。

 @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        MenuInflater inflater = getMenuInflater();
        inflater.inflate(R.menu.searchable_dictionary, menu);

        MenuItem item = menu.findItem(R.id.search);

        SearchView searchView = (SearchView)MenuItemCompat.getActionView(item);

        SearchManager searchManager = (SearchManager) getSystemService(Context.SEARCH_SERVICE);
        SearchableInfo info = searchManager.getSearchableInfo(getComponentName());
        searchView.setSearchableInfo(info); 




        return true;


    }




    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        switch (item.getItemId()) {
            case R.id.search:
                onSearchRequested();
                return false;

            case R.id.about:
                startActivity(new Intent(this, About.class));
                return true;


            default:
                return false;

        }

1 个答案:

答案 0 :(得分:0)

SQLite限制了ALTER TABLE支持,您可以使用该支持将列添加到表的末尾或更改表的名称。如果要在表的结构中进行更复杂的更改,则必须重新创建表。您可以将现有数据保存到临时表,删除旧表,创建新表,然后将数据从临时表中复制回来。

例如,假设您有一个名为“t1”的表,其中列名为“a”,“b”和“c”,并且您要从此表中删除列“c”。以下步骤说明了如何做到这一点:

BEGIN TRANSACTION;
CREATE TEMPORARY TABLE t1_backup(a,b);
INSERT INTO t1_backup SELECT a,b FROM t1;
DROP TABLE t1;
CREATE TABLE t1(a,b);
INSERT INTO t1 SELECT a,b FROM t1_backup;
DROP TABLE t1_backup;
COMMIT;

How to delete or add column in SQLITE?

Delete column from SQLite table

修改

这是你的问题的解决方案在评论中说:

这里,

public void onListItemClick(ListView parent, View view, int position, long id) {
        Intent intent = new Intent(this, EmployeeDetails.class);
        Cursor cursor = (Cursor) adapter.getItem(position);
        intent.putExtra("EMPLOYEE_ID", cursor.getInt(cursor.getColumnIndex("_id")));
        startActivity(intent);

问题出在你的意图上。!!你正在传递这个作为上下文,但这里的这个没有引用你的Activity ..它是onClick!你的logcat可能会给你一个NPE或非法的例外, 改为

Intent intent = new Intent(EmployeeList.this , EmployeeDetails.class);