2016-05-12 16 views
-1

Ich meine, eine App mit einer Schaltfläche "Einstellungen" zu machen, die eine neue Aktivität erstellt, wenn gedrückt wird. Ich möchte, dass diese neue Aktivität die Seite mit den tatsächlichen Einstellungen anzeigt.Ich kann keine neue Aktivität sehen

Hier ist der XML-Code der Schaltfläche Einstellungen:

<Button 
android:text="Settings" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content" 
android:id="@+id/buttonResSettings" /> 

Hier ist der Code, wo ich die neue Tätigkeit nennen, die meiner Haupttätigkeit der ist OnCreate:

Button resSetButton = FindViewById<Button>(Resource.Id.buttonResSettings); 
resSetButton.Click += delegate { 
var ResSetAct = new Intent(this, typeof(ResSettingsActivity)); 
ResSetAct.PutExtra("res", res); 
StartActivity(ResSetAct); 
}; 

Hier ist der Code meiner neue Aktivität:

public class ResSettingsActivity : Activity 
{ 
    protected override void OnCreate(Bundle bundle) 
    { 
     base.OnCreate(bundle); 

     // Set the view to ResSettings(.axml) 
     SetContentView(Resource.Layout.ResSettings); 

     //Fetch the data of the variables 
     string res = Intent.GetStringExtra("res"); 

     //Map the elements of the view to usable objects 
     EditText CurRes = FindViewById<EditText>(Resource.Id.editCurRes); 

     //Display the current values of the settings 
     CurRes.Text = res; 
    } 
} 

Aufbau und Verwendung des Restes der ap p im Emulator stellt kein Problem dar, aber wenn ich auf diese Einstellungen-Schaltfläche klicke, passiert nichts (außer der Standard-onClick-Button-Design-Änderung).

Antwort

2

Sie müssen daran denken, das [Activity] Attribut zu Ihrer neuen Aktivitätsklasse hinzuzufügen:

[Activity(Label = "Res Settings")] 
public class ResSettingsActivity : Activity 
{ 
    ... 
} 

Das Attribut wird einen Eintrag in der AndroidManifest.xml für Sie bei der Erstellung hinzufügen. Sie können dies überprüfen, indem Sie im Ordner obj/Debug/android nachsehen, wo Sie das resultierende Manifest sehen können. Sie sollten einen Eintrag wie sehen:

<activity android:label="Res Settings" android:name="md51237869127761dfsa77sadvfb.ResSettingsActivity" /> 

Wenn Sie den Namen ein md5 Summe nicht möchten, haben Sie die Präfix Name Eigenschaft auf die Aktivität Attribut hinzufügen:

[Activity(Label = "Res Settings", Name = "my.package.name.ResSettingsActivity")] 
+0

Danke für den Kopf! Das Problem besteht jedoch weiterhin. – Slath

+0

Ich kann Ihr Problem nicht reproduzieren, funktioniert hier einwandfrei. – Cheesebaron

+0

Ich löste es, indem ich 'var ResSetAct' nach einem Vorschlag von Parveen Prajapati in' Intent ResSetAct' änderte. – Slath

1
Intent theintent = new Intent(A.this,B.java); 
theintent.putExtra("name",john); 
startActivity(theintent); 

Deklarieren Sie auch die Klasse b.java in der Manifestdatei.

+0

Wenn die Schaltfläche nicht funktioniert dann fügen Sie onclick Eigenschaft in der Schaltfläche xml –

+0

Thanks! Ich habe gerade den 'var ResSetAct' in' Intent ResSetAct' geändert, hinzugefügt, was Cheesebaron erwähnt. Jetzt funktioniert es wie ein Zauber! – Slath

+0

ok, das ist großartig. –

0
Intent i = new Intent(getApplicationContext(), ActivityTwo.class); 

// Set the request code to any code you like, you can identify the 
// callback via this code 
startActivity(i); 
0
Intent intent = new Intent(this, DisplayMessageActivity.class); 
    intent.putExtra(EXTRA_MESSAGE, message); 
    startActivity(intent); 

Sie können eine Absicht wie diese übergeben und die Klasse DisplayMessageActivity in der Manifest-Datei deklarieren.

Verwandte Themen