2012-01-16 12 views
6

chciałem wdrożyć ActionBar (Android 4.0) w aplikacji testowej, aby zobaczyć jak to działa itpAndroid ActionBar zmianę, w (z 3 punktów)

Moje pytanie: Prawie każdy App do 4,0 ma na prawym rogu ActionBar a "menuButton" z ikoną, która pokazuje 3 pionowe kropki. (Patrz: http://cdn.gottabemobile.com/wp-content/uploads/2011/12/ICS-Screen05.jpg)

Jak mogę to wdrożyć w mojej aplikacji?

Próbowałem zaimplementować ten "menuButton" za pomocą ah Spinneradapter .. ale ten zawsze wyświetla się po nazwie aplikacji w pasku akcji.

Przy okazji. Kolejne pytanie: Mam przycisk odświeżania w mojej aplikacji .. w jaki sposób mogę obrócić obraz "Odświeżanie ikony", gdy kliknięto?

Oto mój kod ...

Dzięki za pomoc i proszę wybaczyć moje umiejętności programowania ... Jestem początkującym! :)

public class IVOAppActivity extends Activity { 
/** Called when the activity is first created. */ 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    ActionBar actionBar = getActionBar(); 

    actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_LIST); 

    SpinnerAdapter mSpinnerAdapter = ArrayAdapter.createFromResource(this, R.array.action_list, 
     android.R.layout.simple_spinner_dropdown_item); 

    actionBar.setListNavigationCallbacks(mSpinnerAdapter, null); 

    setContentView(R.layout.main); 
} 


/** Create ActionBar */ 
public boolean onCreateOptionsMenu(Menu menu) { 
     MenuInflater inflater = getMenuInflater(); 
     inflater.inflate(R.menu.menubar, menu); 
    return true; 
} 

/** Handle clicks on ActionBar */ 
@Override 
public boolean onOptionsItemSelected(MenuItem item) { 
// Handle item selection 
switch (item.getItemId()) { 

    case R.id.menu_refresh: 
     Toast.makeText(this, "Fake Refreshing..", Toast.LENGTH_SHORT).show(); 
    /*final Intent i = new Intent(this, Help.class); 
    startActivity(i);*/ 
    break; 
    case R.id.menu_settings: 
     Toast.makeText(this, "Settings", Toast.LENGTH_SHORT).show(); 
    /*final Intent ii = new Intent(this, Options.class); 
    startActivity(ii);*/ 
    break; 


} return false;}} 

XML ActionBar

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


<item android:id="@+id/menu_refresh" 
    android:icon="@drawable/ic_popup_sync_1" 
    android:showAsAction="always"/> 

<item android:id="@+id/menu_settings" 
    android:icon="@drawable/ic_menu_preferences" 
    android:showAsAction="always"/></menu> 

Odpowiedz

7

Jak mogę wdrożyć to w mojej aplikacji?

Masz menu opcji, z elementami, które nie są wciągane na pasek akcji jako przyciski paska narzędzi i tym podobne. Ponieważ wybrałeś opcję tworzenia własnych dwóch opcji, pozycje menu mają numer android::showAsAction="always", będą to przyciski paska narzędzi, dzięki czemu nie pozostaną ci nic w menu spillover.

Należy zauważyć, że zobaczysz przycisk z trzema kropkami na urządzeniach, które nie mają przycisku MENU poza ekranem.

+0

Dzięki za szybką reakcję, nie wiedziałem, że tylko kilka Urządzeń może zobaczyć, że "MenuButton" ... W takim przypadku jak mogę (np. Przycisk "Ustawienia") sprawić, że wyświetli się menu rozwijane po kliknięciu? Chcę tego samego zachowania, co przycisk "Menu" z 3 punktami ... Możesz mi podać przykład lub coś takiego? Dziękuję i tak :) – HardStyle

+0

@HardStyle: Zapraszamy do wyświetlenia 'ListPopupView'. Nie próbowałem robić tego ręcznie z paska narzędzi paska akcji. – CommonsWare

Powiązane problemy