Bekomme Activity nicht zum Laufen

I

inspire

Ambitioniertes Mitglied
3
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
 
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 :)
 
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
 
  • Danke
Reaktionen: inspire
jetzt hast du mich verstanden, genau das hab ich gesucht - danke! :)
 

Ähnliche Themen

S
Antworten
9
Aufrufe
1.199
swa00
swa00
M
  • maksimilian
Antworten
5
Aufrufe
857
maksimilian
M
wernho
Antworten
11
Aufrufe
684
wernho
wernho
Zurück
Oben Unten