2014-11-24 2 views
1

У меня возникают большие проблемы с моим текущим приложением. Кажется, что невозможно просто выполнить какое-либо действие над кнопкой при развертке поиска. Я пробовал всевозможные методы, такие как onBackPressed() или логический onKeyDown. Ничего не получилось. Я также попробовал андроид: parentActivity на манифесте, никаких результатов.Как реализовать действие BackButton на Android

У вас есть идея? Дело в том, что каждый раз, когда я нажимаю увеличительное стекло, чтобы начать поиск, кнопка «Назад» больше не работает, пока я не закрою окно поиска вручную.

Вот мой код.

@Override 
protected void onCreate(Bundle savedInstanceState) { 

    super.onCreate(savedInstanceState); 

    //Indica el layout (pantalla) de esta activity, clase. 
    setContentView(R.layout.activity_pantalla_principal_administrar); 
    searchview = (SearchView) findViewById(R.id.searchView); 
    searchview.setOnClickListener(this); 

Тогда я попробовал это двумя способами

@Override 
    public boolean onKeyDown(int keyCode, KeyEvent event) { //MEJORAR ESTO 

     if (keyCode == KeyEvent.KEYCODE_BACK) { 

      searchview.onActionViewCollapsed(); 
      return true; 
     } 
     return super.onKeyDown(keyCode, event); 
    } 

    @Override 
    public void onBackPressed(){ 

     if (!this.searchview.isIconified()) { 

      searchview.onActionViewCollapsed(); 
      invalidateOptionsMenu(); 
     } else { 

      super.onBackPressed(); 
     } 
    } 

и, наконец, вот XML кусок

<SearchView 
    android:layout_width="match_parent" 
    android:layout_height="63dp" 
    android:id="@+id/searchView" 
    android:queryHint="Servicio" 
    android:iconifiedByDefault="true" 
    android:backgroundTint="@color/Negro" 
    android:layout_marginRight="0dp" 
    android:clickable="true" /> 

ответ

0

Странно, ваша реализация KeyDown выглядеть?

@Override 
    public boolean onKeyDown(int keyCode, KeyEvent event) { 
     if ((keyCode == KeyEvent.KEYCODE_BACK)) { 
      if (!this.searchview.isIconified()) { 
       searchview.onActionViewCollapsed(); 
       invalidateOptionsMenu(); 
      } 
      return true; 
     } 
     return super.onKeyDown(keyCode, event); 
    } 
+0

Спасибо, но нет. Все еще не работает. Я пробовал ваш метод, и теперь он даже не заканчивает() активность при закрытии поискового запроса. – Razvi

+0

Можете ли вы опубликовать весь макет файла SearchView :) –

+0

Конечно, я отвечу на свой вопрос, чтобы вы могли его увидеть :) Благодарим за помощь. – Razvi

0

Здесь находится layout.xml, содержащий searchview.

>

 <LinearLayout 
      android:orientation="horizontal" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:layout_gravity="center_horizontal" 
      android:layout_weight="0.05" 
      android:weightSum="1"> 

      <ImageView 
       android:layout_width="60dp" 
       android:layout_height="60dp" 
       android:id="@+id/bombillaImage" 
       android:src="@drawable/bombilla" 
       android:layout_marginTop="0dp" /> 

      <LinearLayout 
       android:orientation="horizontal" 
       android:layout_width="211dp" 
       android:layout_height="wrap_content" 
       android:layout_toEndOf="@+id/bombillaImage" 
       android:layout_alignParentTop="true" 
       android:layout_toLeftOf="@+id/ayudaButton" 
       android:layout_toStartOf="@+id/ayudaButton" 
       android:layout_above="@+id/passwordList" 
       android:id="@+id/linearLayout6" 
       android:backgroundTint="@color/Negro" 
       android:clickable="true"> 


       <SearchView 
        android:layout_width="match_parent" 
        android:layout_height="63dp" 
        android:id="@+id/searchView" 
        android:queryHint="Servicio" 
        android:iconifiedByDefault="true" 
        android:backgroundTint="@color/Negro" 
        android:layout_marginRight="0dp" 
        android:clickable="true" /> 

      </LinearLayout> 

      <LinearLayout 
       android:orientation="vertical" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_alignParentTop="true" 
       android:layout_alignRight="@+id/scrollView" 
       android:layout_alignEnd="@+id/scrollView" 
       android:gravity="right"> 

       <ImageButton 
        android:layout_width="60dp" 
        android:layout_height="60dp" 
        android:id="@+id/ayudaButton" 
        android:layout_alignParentRight="true" 
        android:layout_alignParentEnd="true" 
        android:adjustViewBounds="false" 
        android:clickable="true" 
        android:longClickable="true" 
        android:scaleType="centerInside" 
        android:background="@drawable/ayudabuttonbackground"/> 

       <TextView 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:textAppearance="?android:attr/textAppearanceSmall" 
        android:text="Ayuda." 
        android:id="@+id/textView6" 
        android:textSize="8dp" 
        android:textStyle="italic" 
        android:textColor="#ff000000" 
        android:layout_below="@+id/ayudaButton" 
        android:layout_alignParentRight="true" 
        android:layout_alignParentEnd="true" 
        android:layout_marginRight="17dp" /> 
      </LinearLayout> 

     </LinearLayout> 


     <LinearLayout 
      android:orientation="vertical" 
      android:layout_width="match_parent" 
      android:layout_height="340dp" 
      android:layout_marginTop="10dp" 
      android:layout_weight="1.15"> 

      <ListView 
       android:layout_width="fill_parent" 
       android:layout_height="match_parent" 
       android:id="@+id/passwordList" 
       android:scrollbars="vertical" 
       android:scrollbarStyle="outsideOverlay" 
       android:visibility="visible" 
       tools:listitem="@android:layout/simple_list_item_1" 
       android:layout_below="@+id/textView6" 
       android:layout_above="@+id/salirListaButton" 
       android:layout_gravity="center_vertical" /> 
     </LinearLayout> 

     <LinearLayout 
      android:orientation="vertical" 
      android:layout_width="match_parent" 
      android:layout_height="43dp" 
      android:layout_marginBottom="5dp"> 

      <Button 
       style="?android:attr/buttonStyleSmall" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:text="SALIR" 

       android:id="@+id/salirListaButton" 
       android:layout_alignParentBottom="true" 
       android:layout_alignParentRight="true" 
       android:layout_alignParentEnd="true" 
       android:layout_gravity="right" /> 
     </LinearLayout> 

    </LinearLayout> 
</ScrollView> 

Смежные вопросы