2014-11-24 71 views
1

我的當前應用程序出現大問題。當searchview擴展時,似乎只是不可能通過後退按鈕執行某些操作。我嘗試了所有類似onBackPressed()或布爾onKeyDown的方法。沒有工作。我也嘗試清單上的android:parentActivity,沒有結果。如何在Android上實現BackButton動作

你有什麼想法嗎?問題在於,每次我按下放大鏡以啓動搜索視圖時,後退按鈕都不再工作,直到手動關閉搜索視圖。

這是我的代碼。

@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

謝謝你,但不是。還是行不通。我試過你的方法,現在它甚至沒有完成()當searchview關閉時的活動。 – Razvi 2014-11-24 19:19:29

+0

你可以發佈整個SearchView佈局文件:) – 2014-11-24 19:26:59

+0

當然,我要回答我自己的問題,所以你可以看到它:) 謝謝你的幫助。 – Razvi 2014-11-24 19:32:45

0

這是包含searchview的layout.xml。

>

 <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>