2016-09-12 4 views
0

Я разрабатываю веб-приложение, и здесь у меня есть проблема.Панель инструментов Android в webapp

У меня есть панель инструментов (панель инструментов андроида виджет) с логотипом и поиска кнопки

Как вы можете видеть, у меня есть страница входа (WebView). Я хочу, чтобы пользователь увидел эту кнопку поиска после входа пользователя на веб-страницу. Как мне это сделать?

Toolbar

Отредактировано:

В моей toolbar.xml

<?xml version="1.0" encoding="utf-8"?> 
<android.support.v7.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:id="@+id/my_toolbar" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    android:background="#000000" 
    android:elevation="3dp" 
    app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar" 
    app:popupTheme="@style/ThemeOverlay.AppCompat.Light"> 

</android.support.v7.widget.Toolbar> 

В моей menu_main.xml

<?xml version="1.0" encoding="utf-8"?> 
<menu xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    xmlns:tools="http://schemas.android.com/tools" 
    tools:context=".MainActivity"> 

    <item 
     android:id="@+id/action_search" 
     android:orderInCategory="200" 
     android:title="@string/action_search" 
     android:icon="@drawable/ic_action_search" 
     app:showAsAction="ifRoom|collapseActionView" 
     app:actionViewClass="android.support.v7.widget.SearchView"/> 

</menu> 

И в MainActivity.java OnCreate,

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

     toolbar = (Toolbar) findViewById(R.id.tool_bar); 
     setSupportActionBar(toolbar); 
     getSupportActionBar().setDisplayShowTitleEnabled(false); 
     //toolbar.setNavigationIcon(R.mipmap.logo9); 
     toolbar.setTitle(""); 
     toolbar.setSubtitle(""); 

......

@Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
     getMenuInflater().inflate(R.menu.menu_main, menu); 

     SearchView searchView = (SearchView) menu.findItem(R.id.action_search).getActionView(); 
     SearchManager searchManager = (SearchManager) getSystemService(SEARCH_SERVICE); 
     searchView.setSearchableInfo(searchManager.getSearchableInfo(getComponentName())); 

     return super.onCreateOptionsMenu(menu); 
    } 

И, наконец, в activity_main.xml, я просто включить панель инструментов,

<include 
     android:id="@+id/tool_bar" 
     layout="@layout/tool_bar" 
     ></include> 
+0

Привет, попробуйте это и дайте мне знать, что работает или нет? http://stackoverflow.com/questions/25930380/android-search-widgethow-to-hide-the-close-button-in-search-view-by-default – Jay

ответ

0

Если кнопка поиска является Android View, вы можете скрыть он, позвонив по телефону View.setVisibility(View.GONE).

Если вместо этого определили его как menu XML ресурса и загрузили его в этом Activity, то просто не загружать menu ресурс, если пользователь не вошел в систему. Это делается в public boolean onCreateOptionsMenu(Menu menu) из Activity.

Если вы заходите на другой номер Activity после входа в систему, просто используйте отдельный номер Toolbar там, с изображением, как здесь, но без него в логине Activity.

Просьба предоставить более подробную информацию о том, как вы добавили значок поиска в Toolbar, в первую очередь, тогда я буду в состоянии помочь вам больше.

Edit:

Вы можете использовать метод WebView.getUrl(), чтобы получить URL отображаемого сайта, если ваша страница Войти на login.php, вы можете посмотреть, если URL является то, что, а затем не показывать результаты поиска значок. Например, вы можете проверить URL-адрес с String.contains(), например: .contains("login.php"). И если это правда, не показывайте кнопку.

+0

Я загрузил свой код. – KIM

+0

Но как я могу написать оператор if для статуса входа пользователя? например, если пользователь находится в сеансе регистрации, тогда отобразите кнопку поиска. Как мне написать его в MainActivity.java? – KIM

+0

Поскольку логин не является частью активности в android. Это делается на моем веб-сайте. – KIM

0

В ваших стилей для этой деятельности использовать этот атрибут в вашем стиле для этой деятельности

<item name="android:windowNoTitle">true</item> 
Смежные вопросы