1. Nimm jetzt an unserem 2. ADVENT-Gewinnspiel teil - Alle Informationen findest Du hier!

Bekomme Activity nicht zum Laufen

Dieses Thema im Forum "Android App Entwicklung" wurde erstellt von inspire, 27.12.2010.

  1. inspire, 27.12.2010 #1
    inspire

    inspire Threadstarter Android-Hilfe.de Mitglied

    Beiträge:
    78
    Erhaltene Danke:
    3
    Registriert seit:
    03.01.2010
    Hi,

    ich habe eine ganz normale Activity, die beim Starten des Programms ausgeführt wird und möchte nun eine neue Activity hinzufügen, die das Settings-Menü darstellen soll.

    Die Activity heißt Settings und sieht so aus:
    Code:
    public class Settings extends ListActivity {
    
        
        @Override
        public void onCreate(Bundle savedInstanceState) {
          super.onCreate(savedInstanceState);
    
          setListAdapter(new ArrayAdapter<String>(this, R.layout.list_item, COUNTRIES));
    
          ListView lv = getListView();
          lv.setTextFilterEnabled(true);
    
          lv.setOnItemClickListener(new OnItemClickListener() {
    
    
            @Override
            public void onItemClick(AdapterView<?> arg0, View view, int position,
                    long id) 
            {
                Toast.makeText(getApplicationContext(), ((TextView) view).getText(),
                          Toast.LENGTH_SHORT).show();
            }
            
          });
          
        }
        
        
        static final String[] COUNTRIES = new String[] {"one", "two"};
    }
    Diese ist auch in der AndroidManifest.xml eingetragen:
    Code:
    <?xml version="1.0" encoding="utf-8"?>
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
          package="com.WinampControlClient"
          android:versionCode="1"
          android:versionName="1.0">
          
          <supports-screens
            smallScreens="false" />
          
          
        <application android:icon="@drawable/icon" android:label="@string/app_name">
            
            <activity android:name=".WinampControlClient"
                      android:label="@+string/app_name"
                      android:screenOrientation="portrait">
                <intent-filter>
                    <action android:name="android.intent.action.MAIN" />
                    <category android:name="android.intent.category.LAUNCHER" />
                </intent-filter>
            </activity>
            
            <activity android:name=".Settings" />
                
    
        </application>
        
        <uses-permission android:name="android.permission.INTERNET" />
        
    </manifest> 

    Doch wie bekomme ich die nun auf den Bildschirm?

    Martin
     
  2. FireRider, 27.12.2010 #2
    FireRider

    FireRider Junior Mitglied

    Beiträge:
    38
    Erhaltene Danke:
    6
    Registriert seit:
    27.09.2010
    Ich denke du meinst dass die Activity ausgeführt wird wenn du die Menü-Taste drückst und da den Eintrag auswählst oder?
    Wenn dem so ist, dann musst du in der Hauptacitivity (also da wo das Menü sein soll) folgendes einfügen:

    Code:
    public boolean onCreateOptionsMenu(Menu menu) {
        	MenuInflater inflater = getMenuInflater();
            inflater.inflate(R.menu.MENU, menu);
            return true;
    }
        
    public boolean onOptionsItemSelected(MenuItem item) {
        	switch (item.getItemId()) {
        	case R.id.MENUEINTRAG:
        		//Settings-Activity starten
        		return true;
        	default:
        		return super.onOptionsItemSelected(item);
        	}
    }
    Jetzt musst du noch die Einträge des Menüs erstellen.
    Dazu machst du im res einen neuen Ordner namens res/menu und darin ein XML-File mit Namen MENU.xml
    Darin fügst du folgendes ein:

    Code:
    <menu xmlns:android="http://schemas.android.com/apk/res/android">
    	<item android:id="@+id/MENUEINTRAG"
    		android:title="MENUEINTRAG" 
                    android:icon="ICON" />
    </menu>
    Hoffe hat dir geholfen :)
     
  3. inspire, 27.12.2010 #3
    inspire

    inspire Threadstarter Android-Hilfe.de Mitglied

    Beiträge:
    78
    Erhaltene Danke:
    3
    Registriert seit:
    03.01.2010
  4. FireRider, 27.12.2010 #4
    FireRider

    FireRider Junior Mitglied

    Beiträge:
    38
    Erhaltene Danke:
    6
    Registriert seit:
    27.09.2010
    Mein Contextmenü war eich da um deine Einstellungsactivity zu starten^^
    Man kanns natürlich auch anders starten, aber wenn du wissen wolltest wie du ne Activity startest dann musst du eigentlich nur die beiden Befehle benutzen:

    Code:
    Intent myIntent = new Intent(this,Settings.class);
    StartActivityForResult(myIntent,0);
    Diese beiden Befehle kannst du z.B. in meinem Contextmenu einfügen (Da wo der Kommentar is) oder in einem OnClickListener (Da musst du dann drauf achten, dass this nicht geht, da musst du view.getContext() oder getApplicationContext() benutzen)

    Wenns wieder das falsche war solltest du vielleicht noch etwas genauer werden xD
     
    inspire bedankt sich.
  5. inspire, 27.12.2010 #5
    inspire

    inspire Threadstarter Android-Hilfe.de Mitglied

    Beiträge:
    78
    Erhaltene Danke:
    3
    Registriert seit:
    03.01.2010
    jetzt hast du mich verstanden, genau das hab ich gesucht - danke! :)
     

Diese Seite empfehlen