【问题标题】:I want to implement Autocompletetextview in toolbar我想在工具栏中实现 Autocompletetextview
【发布时间】:2016-12-14 05:46:06
【问题描述】:

这是我的代码。我正在使用 menu_search 来显示搜索图标。 Search_layout 显示自动完成文本视图。我不知道在哪里初始化 mainactivity 中的 autocompletetextview。

menu_search.xml

        <item android:id="@+id/action_search"
            android:name="search"
            android:title="search"
            android:imeOptions="actionSearch"
            android:inputType="textAutoComplete|textAutoCorrect"
            app:actionLayout="@layout/search_layout"
            android:icon="@android:drawable/ic_menu_search"
            app:showAsAction="ifRoom|collapseActionView"/>

    </menu>

search_layout.xml

        <AutoCompleteTextView
            android:id="@+id/autoCompleteTextView_searchWidget"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:padding="5dp"
            android:textColor="@color/colorAccent"
            android:imeOptions="actionSearch"
            android:inputType="text">
            <requestFocus/>
        </AutoCompleteTextView>

    </LinearLayout>

MainActivity.java

    public class MainActivity extends AppCompatActivity {
    private Toolbar toolbar;
        private TabLayout tabLayout;
        private ViewPager viewPager;

      @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);

            toolbar = (Toolbar) findViewById(R.id.toolbar);
            setSupportActionBar(toolbar);
            //getSupportActionBar().setDisplayHomeAsUpEnabled(true);

            viewPager = (ViewPager) findViewById(R.id.viewpager);
            setupViewPager(viewPager);

            tabLayout = (TabLayout) findViewById(R.id.tabs);
            tabLayout.setupWithViewPager(viewPager);
            //setupTabIcons();
        }

        @Override
        public boolean onCreateOptionsMenu(Menu menu) {

            getMenuInflater().inflate(R.menu.menu_search,menu);
            return super.onCreateOptionsMenu(menu);
        }

        @Override
        public boolean onOptionsItemSelected(MenuItem item) {
            return super.onOptionsItemSelected(item);
        }
}

【问题讨论】:

  • 在您尝试添加 AutocompleteTextview 的位置发布您的代码 sn-p
  • 请检查我的代码
  • 检查我的答案

标签: android android-toolbar android-tabs autocompletetextview


【解决方案1】:
<android.support.v7.widget.Toolbar       
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="@dimen/_40sdp"
android:background="@color/color_white"
android:contentInsetEnd="0dp"
android:contentInsetRight="0dp"
app:contentInsetLeft="0dp"
app:contentInsetStart="0dp"
app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar">

<RelativeLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content">
    <AutoCompleteTextView
        android:id="@+id/autoCompleteTextView"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_centerVertical="true"
        android:layout_toLeftOf="@+id/ivShorting"
        android:layout_toRightOf="@+id/ivLeftIcon"
        android:background="@drawable/search_drawable"
        android:drawableLeft="@drawable/ic_search"
        android:drawablePadding="@dimen/_10sdp"
        android:gravity="left|center_vertical"
        android:hint="Search Job"
        android:imeOptions="actionSearch"
        android:inputType="textAutoComplete|textAutoCorrect"
        android:lines="1"
        android:textColor="@color/color_outer_space"
        android:textColorHint="@color/color_outer_space"
        android:textSize="@dimen/_14sdp"/>
</RelativeLayout>

将工具栏添加到操作栏

private Toolbar toolbar;
toolbar = (Toolbar) findViewById(R.id.activity_menubar_toolbar);
setSupportActionBar(toolbar);
autoCompleteTextView = (AutoCompleteTextView)toolbar.findViewById(R.id.autoCompleteTextView);

按照下面的链接将 ArrayList 添加到 AutocompleteTextView

http://androidexample.com/Show_AutoComplete_Suggestions_-_Android_Example/index.php?view=article_discription&aid=105

【讨论】:

  • 不工作.. 出现以下错误“java.lang.NullPointerException:尝试在空对象引用上调用虚拟方法 'void android.widget.AutoCompleteTextView.setAdapter(android.widget.ListAdapter)'”
  • 你是否创建了适配器并从数组列表中获取数据? adapter = new ArrayAdapter(this, android.R.layout.simple_dropdown_item_1line, item);
  • 没有。我有自己的自定义适配器
  • 我也试过你的适配器。仍然显示相同的错误toolbar = (Toolbar) findViewById(R.id.toolbar); setSupportActionBar(toolbar); autoCompleteTextView = (AutoCompleteTextView) toolbar.findViewById(R.id.autoCompleteTextView_searchWidget); adapter = new ArrayAdapter&lt;String&gt;(this, android.R.layout.simple_dropdown_item_1line, COUNTRIES);
【解决方案2】:

我建议你可以使用 MaterialSearchView

<FrameLayout
        android:id="@+id/toolbar_container"
        android:layout_width="match_parent"
        android:layout_height="wrap_content">

        <android.support.v7.widget.Toolbar
            android:id="@+id/toolbar"
            android:layout_width="match_parent"
            android:layout_height="?attr/actionBarSize"
            android:background="@color/theme_primary" />

        <com.miguelcatalan.materialsearchview.MaterialSearchView
            android:id="@+id/search_view"
            android:layout_width="match_parent"
            android:layout_height="wrap_content" />
    </FrameLayout>

https://github.com/MiguelCatalan/MaterialSearchView

https://github.com/Mauker1/MaterialSearchView

http://joerichard.net/android/android-material-design-searchview-example/

【讨论】:

    猜你喜欢
    • 2019-11-11
    • 2023-03-31
    • 2015-08-11
    • 2019-08-31
    • 2018-10-02
    • 2019-08-02
    • 2020-06-09
    • 1970-01-01
    • 2019-02-13
    相关资源
    最近更新 更多