ABS Home Icon

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • ABS Home Icon

    Hallo allerseits,

    ich bin es schon wieder mit einer Frage...
    Mit eurer Hilfe habe ich letzte Woche den ActionBarSherlock zum Laufen gebracht. Mein Ziel war es, einen Info- und Hilfebutton sowie einen Homebutton an der linken Seite in die ActionBar zu bekommen. Ich habe mir dieses und dieses Tutorial angesehen, aber es will irgendwie nicht laufen. Ich bekomme einen Button rein, und der funktioniert auch aber das HomeIcon hat keine Funktion.
    Ich kopiere mal einen Ausschnitt des Codes mit den entsprechenden Stellen.

    Java-Quellcode

    1. import java.util.Calendar;
    2. import com.actionbarsherlock.app.ActionBar;
    3. import com.actionbarsherlock.app.SherlockActivity;
    4. import de.powergames.bmidroid.R;
    5. import android.content.Intent;
    6. import android.os.Bundle;
    7. import android.view.KeyEvent;
    8. import com.actionbarsherlock.view.Menu;
    9. import com.actionbarsherlock.view.MenuItem;
    10. import android.view.View;
    11. import android.widget.EditText;
    12. import android.widget.ImageView;
    13. import android.widget.TextView;
    14. import android.widget.Toast;
    15. public class MainActivity extends SherlockActivity {
    16. boolean mainisopen = true;
    17. @Override
    18. protected void onCreate(Bundle savedInstanceState) {
    19. super.onCreate(savedInstanceState);
    20. Calendar c = Calendar.getInstance();
    21. int frohe_weihnachten = c.get(Calendar.MONTH);
    22. if (frohe_weihnachten == 0x0000000b) {
    23. setContentView(R.layout.ueber);
    24. }
    25. else{
    26. setContentView(R.layout.activity_main);
    27. }
    28. AppRater.app_launched(this);
    29. ActionBar bar = getSupportActionBar();
    30. bar.setSubtitle("");
    31. bar.setTitle("");
    32. getSupportActionBar().setDisplayHomeAsUpEnabled(true);
    33. getSupportActionBar().setHomeButtonEnabled(true);
    34. //getSupportActionBar().setDisplayHomeAsUpEnabled(true);
    35. }
    36. @Override
    37. public boolean onCreateOptionsMenu(Menu menu) {
    38. menu.add(0, 1, 0,"back")
    39. .setIcon(R.drawable.ic_launcher)
    40. .setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM | MenuItem.SHOW_AS_ACTION_WITH_TEXT);
    41. return true;
    42. }
    43. @Override
    44. public boolean onOptionsItemSelected(MenuItem item) {
    45. if (item.getItemId() == 1) {
    46. setContentView(R.layout.activity_main);
    47. }
    48. if (item.toString().equals("About")) {
    49. setContentView(R.layout.ueber);
    50. mainisopen = false;
    51. }
    52. if (item.toString().equals("Hilfe")) {
    53. setContentView(R.layout.hilfe);
    54. mainisopen = false;
    55. Toast.makeText(getApplicationContext(), R.string.hilfe_toast, Toast.LENGTH_LONG).show();
    56. mainisopen = false;
    57. }
    58. return true;
    59. }
    Alles anzeigen


    Das normale Menü funktioniert leider gar nicht mehr...
    Wäre super, wenn jemand helfen könnte!
    PS: Tut mir leid, dass ich so viele Fragen stelle... bin noch neu aber werde euch zu gegebenem Zeitpunkt auch etwas zurück geben :)
  • Achja, das hier habe ich probiert:

    Java-Quellcode

    1. switch (menuItem.getItemId()) {
    2. case android.R.id.home:
    3. // ProjectsActivity is my 'home' activity
    4. startActivityAfterCleanup(ProjectsActivity.class);
    5. return true;
    6. }
    7. return (super.onOptionsItemSelected(menuItem));
    8. }
    9. private void startActivityAfterCleanup(Class<?> cls) {
    10. if (projectsDao != null) projectsDao.close();
    11. Intent intent = new Intent(getApplicationContext(), cls);
    12. intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
    13. startActivity(intent);
    14. }
    Alles anzeigen


    aber es werden mir einige Dinge Rot angezeigt. Ich weiß zum Beispiel nicht, was "projectsDao" bedeutet...
  • Wenn du nicht weißt, was ProjectDao ist, woher hast du das dann? o.O

    Zum eigentlichen Problem:
    StackOverflow sagt:

    Java-Quellcode

    1. ActionBar actionBar = getSupportActionBar();
    2. actionBar.setDisplayHomeAsUpEnabled(true);


    Dein Zusatzcode sieht mir nach einem Programm aus, das GreenDao benutzt. In der Clean-Methode wird einfach nur die Datenbank geschlossen, auf die er in dieser Activity Zugriff hatte. Das hat mit deiner Frage allerdings so überhaupt gar nix zu tun. ;)
    Je mehr Käse, desto mehr Löcher.
    Je mehr Löcher, desto weniger Käse.
    Daraus folgt: je mehr Käse, desto weniger Käse.

    »Dies ist ein Forum. Schreibt Eure Fragen in das Forum, nicht per PN!«
  • Ich habe den Code von dem zweiten Link oben, dort wurde das erklärt :)
    Das bedeutet diese beiden Zeilen in die onCreate Methode und fertig?
    Ich hatte den ja schon oben drin:

    Java-Quellcode

    1. @Override
    2. protected void onCreate(Bundle savedInstanceState) {
    3. super.onCreate(savedInstanceState);
    4. Calendar c = Calendar.getInstance();
    5. int frohe_weihnachten = c.get(Calendar.MONTH);
    6. if (frohe_weihnachten == 0x0000000b) {
    7. setContentView(R.layout.ueber);
    8. }
    9. else{
    10. setContentView(R.layout.activity_main);
    11. }
    12. AppRater.app_launched(this);
    13. ActionBar bar = getSupportActionBar();
    14. bar.setSubtitle("");
    15. bar.setTitle("");
    16. getSupportActionBar().setDisplayHomeAsUpEnabled(true);
    17. getSupportActionBar().setHomeButtonEnabled(true);
    18. //getSupportActionBar().setDisplayHomeAsUpEnabled(true);
    19. }
    Alles anzeigen

    Funktioniert leider nicht :(

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von henny ()

  • Ich habe jetzt folgendes ausprobiert(aus vogella):

    MainActivity.java:

    Java-Quellcode

    1. import java.util.Calendar;
    2. import com.actionbarsherlock.app.ActionBar;
    3. import com.actionbarsherlock.app.SherlockActivity;
    4. import de.powergames.bmidroid.R;
    5. import android.content.Intent;
    6. import android.os.Bundle;
    7. import android.view.KeyEvent;
    8. import com.actionbarsherlock.view.Menu;
    9. import com.actionbarsherlock.view.MenuInflater;
    10. import com.actionbarsherlock.view.MenuItem;
    11. import android.view.View;
    12. import android.widget.EditText;
    13. import android.widget.ImageView;
    14. import android.widget.TextView;
    15. import android.widget.Toast;
    16. public class MainActivity extends SherlockActivity {
    17. boolean mainisopen = true;
    18. @Override
    19. protected void onCreate(Bundle savedInstanceState) {
    20. super.onCreate(savedInstanceState);
    21. Calendar c = Calendar.getInstance();
    22. int frohe_weihnachten = c.get(Calendar.MONTH);
    23. if (frohe_weihnachten == 0x0000000b) {
    24. setContentView(R.layout.ueber);
    25. }
    26. else{
    27. setContentView(R.layout.activity_main);
    28. }
    29. AppRater.app_launched(this);
    30. ActionBar bar = getSupportActionBar();
    31. bar.setSubtitle("");
    32. bar.setTitle("");
    33. getSupportActionBar().setDisplayHomeAsUpEnabled(true);
    34. getSupportActionBar().setHomeButtonEnabled(true);
    35. }
    36. @Override
    37. public boolean onCreateOptionsMenu(Menu menu) {
    38. MenuInflater inflater = getMenuInflater(); //wird rot angezeigt
    39. inflater.inflate(R.menu.mainmenu, menu);
    40. return true;
    41. }
    42. @Override
    43. public boolean onOptionsItemSelected(MenuItem item) {
    44. switch (item.getItemId()) {
    45. case R.id.action_refresh:
    46. Toast.makeText(this, "Menu Item 1 selected", Toast.LENGTH_SHORT)
    47. .show();
    48. break;
    49. case R.id.action_settings: //wird rot angezeigt
    50. Toast.makeText(this, "Menu item 2 selected", Toast.LENGTH_SHORT)
    51. .show();
    52. break;
    53. case android.R.id.home:
    54. Intent intent = new Intent(this, MainActivity.class);
    55. intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
    56. startActivity(intent);
    57. break;
    58. default:
    59. break;
    60. }
    61. return true;
    62. }
    Alles anzeigen


    mainmenu.xml:

    Java-Quellcode

    1. <?xml version="1.0" encoding="utf-8"?>
    2. <menu xmlns:android="http://schemas.android.com/apk/res/android" >
    3. <item
    4. android:id="@+id/action_refresh"
    5. android:orderInCategory="100"
    6. android:showAsAction="always"
    7. android:icon="@drawable/ic_action_search"
    8. android:title="Refresh"/>
    9. <item
    10. android:id="@+id/action_settings"
    11. android:title="Settings">
    12. </item>
    13. </menu>
    Alles anzeigen


    Mir wird jetzt aber action_settings sowie getMenuInflater rot agezeigt. Ich habe com.actionbarsherlock.view.MenuInflater importiert.