【问题标题】:Create a search box in android在android中创建一个搜索框
【发布时间】:2013-04-15 06:31:56
【问题描述】:

我需要在 android 中创建一个search box,它会检查来自arraylist 的数据,如果它在那里,它将返回到该页面。

代码:

 String[] text = { "One", "Two", "Three", "Four", "Five", "Six", "Seven",
   "Eight", "Nine", "Ten" };

edittext.addTextChangedListener(new TextWatcher()
  {

   public void afterTextChanged(Editable s)
   {

   }

   public void beforeTextChanged(CharSequence s, int start,
    int count, int after)
   {

   }

   public void onTextChanged(CharSequence s, int start,
    int before, int count)
   {

    textlength = edittext.getText().length();
    text_sort.clear();
    image_sort.clear();

    for (int i = 0; i < text.length; i++)
    {
     if (textlength <= text[i].length())
     {
      if (edittext.getText().toString().
   equalsIgnoreCase((String) text[i].subSequence(0, textlength)))
      {

      }
     }
    }

我得到了search functionality 的上述代码但我需要当用户将search any keyword 时,它将从array list 进行检查,如果它在那里它将返回到该页面,否则它将显示no data found!

【问题讨论】:

    标签: android search arraylist


    【解决方案1】:

    EditText 使用 AutoCompleteTextView

    AutoCompleteTextView :我在 ActionBar 中使用了它。你也可以在活动中使用它。它非常简单。

    更多详情请查看artical 和code。

    对于 Actionbar,您必须在代码中添加 android-suport-v4.jar 文件..

    【讨论】:

    • @thanks Dhaval Sodha Parmar 是否支持所有版本的安卓设备!!
    • Dhaval Sodha Parmar 谢谢我可以在这里创建自定义列表视图吗!
    • @Dhaval Sodha Parmar 使用适配器自定义列表视图
    • @priya2134412:是的...wptrafficanalyzer.in/blog/…
    【解决方案2】:

    您应该尝试使用Usage of SearchView in an ActionBar 的android 功能

    还提供了它的兼容性Collapsable SearchView

    以下是您可以从ArrayList 尝试实现搜索的方式:

      public class SearchActivity extends ListActivity
       {
         private ArrayAdapter<String> m_arrayAdapter;
         private SearchView m_searchView;
    @Override
    protected void onCreate(Bundle p_savedInstanceState)
    {
        super.onCreate(p_savedInstanceState);
        // setContentView(R.layout.search);
        m_arrayAdapter =
                new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, m_items);
        setListAdapter(m_arrayAdapter);
    }
    public boolean onCreateOptionsMenu(android.view.Menu menu)
    {
        // MenuInflater inflater = getMenuInflater();
        // inflater.inflate(R.menu.activity_main, menu);
        getMenuInflater().inflate(R.menu.activity_main, menu);
        m_searchView = (SearchView) menu.findItem(R.id.menu_search).getActionView();
        m_searchView.setSubmitButtonEnabled(true);//Set the submit button on search view.
        // Associate searchable configuration with the SearchView
        // SearchManager searchManager = (SearchManager) getSystemService(Context.SEARCH_SERVICE);
        // SearchView searchView = (SearchView) menu.findItem(R.id.menu_search).getActionView();
        // searchView.setSearchableInfo(searchManager.getSearchableInfo(getComponentName()));
        m_searchView.setOnQueryTextListener(new OnQueryTextListener()
        {
            @Override
            public boolean onQueryTextSubmit(String p_query)
            {
                m_arrayAdapter.getFilter().filter(p_query);
                return true;
            }
            @Override
            public boolean onQueryTextChange(String p_newText)
            {
                m_arrayAdapter.getFilter().filter(p_newText);
                return false;
            }
        });
        return true;
    };
    String[] m_items = new String[] { "China", "India", "United States", "Indonesia", "Brazil",
            "Pakistan", "Nigeria", "Bangladesh", "Russia", "Japan", "Mexico", "Philippines",
            "Vietnam", "Ethiopia", "Egypt", "Germany", "Iran", "Turkey",
            "Democratic Republic of the Congo", "Thailand", "France", "United Kingdom", "Italy",
            "South Africa", "Myanmar", "South Korea", "Colombia", "Spain", "Ukraine", "Tanzania",
            "Kenya", "Argentina", "Poland", "Algeria", "Canada" };
      }
    

    【讨论】:

    • 谢谢,但我想要的是我不想在搜索时显示任何列表视图,一旦用户键入关键字,它将从数组列表中搜索关键字是否存在!如果存在,它将返回该页面,否则它将显示为未找到数据!我清楚了吗!
    • 如果你不想要listview那么简单你可以去掉Listview的代码直接从ArrayList中获取结果。
    猜你喜欢
    • 2020-11-18
    • 2013-03-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-02
    • 1970-01-01
    • 2013-04-02
    相关资源
    最近更新 更多