2014-07-21 3 views
0

작업 표시 줄에서 검색 작업을 수행하려고합니다. 아이콘을 설정하고 showAsAction을 always로 설정했지만 항상 오버 플로우 메뉴에 표시됩니다. 작업 표시 줄 자체에 표시하려면 어떻게합니까? 감사!Android 앱의 작업 표시 줄에 작업 항목/아이콘이 표시되지 않습니다.

활동

public class MainActivity extends ActionBarActivity { 

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

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    // Inflate the menu; this adds items to the action bar if it is present. 
    setTitle("Add"); 
    getMenuInflater().inflate(R.menu.main, menu); 
    return true; 
} 

@Override 
public boolean onOptionsItemSelected(MenuItem item) { 
    int id = item.getItemId(); 
    if (id == R.id.action_settings) { 
     Toast.makeText(getApplicationContext(), "Settings", 
        Toast.LENGTH_LONG).show(); 
     return true; 
    } 
    if (id == R.id.action_search) { 
     Toast.makeText(getApplicationContext(), "Search", 
        Toast.LENGTH_LONG).show(); 
     return true; 
    } 
    return super.onOptionsItemSelected(item); 
} 

} 

메뉴 XML 파일은

<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="com.example.testtabs.MainActivity" > 

<item 
    android:id="@+id/action_settings" 
    android:orderInCategory="100" 
    android:title="@string/action_settings" 
    app:showAsAction="never"/> 
<item 
    android:id="@+id/action_search" 
    android:actionViewClass="android.support.v7.widget.SearchView" 
    android:icon="@drawable/ic_search" 
    android:showAsAction="always" 
    android:title="@string/title_search"/> 

</menu> 

capture

답변

0

중 하나를 제거

android:actionViewClass="android.support.v7.widget.SearchView" 

또는 onOptionsItemSelected에서 action_search에 대한 case 문을 삭제하십시오. 그 중 하나를하면 아이콘이 표시됩니다.

SearchView를 사용하려는 경우 콜백은 onOptionsItemSelected와는 다르게 처리됩니다. 여기

문서 : http://developer.android.com/guide/topics/ui/actionbar.html#ActionView

0

그냥 변경 응용 프로그램 : 대신 안드로이드의 showAsAction : showAsAction

<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="com.example.testtabs.MainActivity" > 

    <item 
     android:id="@+id/action_settings" 
     android:orderInCategory="100"`enter code here` 
     android:title="@string/action_settings" 
     app:showAsAction="never"/> 
    <item 
     android:id="@+id/action_search" 
     android:actionViewClass="android.support.v7.widget.SearchView" 
     android:icon="@drawable/ic_search" 
     app:showAsAction="always" 
     android:title="@string/title_search"/> 

    </menu> 
관련 문제