2014-11-24 122 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>