2016-07-26 6 views
-2

Ich habe versucht, eine int-Variable von einer Aktivitätsklasse (A) zu einer anderen Aktivitätsklasse (B) zu übergeben. Da ich ein Anfänger bin, stecke ich hier fest.Wert von einer int-Variablen in einer Klasse in eine andere Klasse übergeben

Ich habe viele Methoden ausprobiert, aber jedes Mal, wenn ich den Code im Debug-Modus ausgeführt wird, kann ich, dass der int-Wert sehen, die ich in die zweite Klasse übergeben haben für Aktivität

-Code auf 0 schaltet A

public void startMainActivity(View view) 
    { 
     //Sending the semester value to Navdrawer 
     Intent intentsem = new Intent(LoginActivity.this, NavDrawer.class); 
     intentsem.putExtra("UserSemester", usersemester); 
     startActivity(intentsem); 


     //Sending the branch value to Navdrawer 

     Intent intentbranch= new Intent(LoginActivity.this, NavDrawer.class); 
     intentbranch.putExtra("UserBranch", userbranch); 
     startActivity(intentbranch); 



    } 

-Code für Aktivität B

public void startSyllabusactivity(View view) 

{ 
    // for first year 

    int semester = getIntent().getIntExtra("UserSemester", 0); 
    if (semester==1 || semester==2) { 
     Intent l = new Intent(this, firstyear_syllabussubject_selector.class); 
     startActivity(l); 
    } 


    //rest of the actions with branches to be added*********************** 

} 
+5

Können Sie den Code auch für uns, um Ihr genaues Problem zu lokalisieren. – VatsalSura

+0

Sie verwenden Absicht oder nicht? –

Antwort

2

Sie müssen Intent verwenden: Aktivität A:

Aktivität B:

int variable = getIntent().getIntExtra("my_value", 0);//0 is the default value if the getintExtra doesn't find the "my_value" 
int userBranch= getIntent().getIntExtra("UserBranch", 0);//0 is the default 
+0

Ich kann 'startActivity (intent) nicht verwenden;' weil ich die Aktivität B nicht starten möchte, sobald der Wert übergeben wurde. Zu diesem Zweck gibt es eine spezielle DONE-Taste. Wie kann ich das erreichen? –

+0

Sie setzen den Code in die OnClick-Methode Ihrer Fertig-Taste – Chol

+0

Immer noch wird der Wert zu 0, wenn es die zweite Aktivität erreicht. Ich habe die Frage mit dem Code aktualisiert. –

1

Sie können immer intent.putExtra() Methode verwenden, zum Beispiel:

Intent intent = new Intent(ActivityA.this, ActivityB.class); 
intent.putExtra("myInt", myInt); 
startActivity(intent); 

und es in ActivityB von erhalten:

Bundle extras = getIntent().getExtras(); 
if (extras != null) { 
    int value = extras.getInt("myInt"); 
    //The key argument here must match that used in the other activity 
} 

Oh wie ein Erinnerung, Sie sollten Ihre Frage zuerst auf Google oder direkt nachschlagen ctly bei SO, wie Ihre Frage ganz allgemein ist und Sie können dieses negative Votum ausweichen ..

+0

Ich glaube, 'getIntExtra' hat einen zusätzlichen Parameter, nein? –

+0

Stimmt, ich werde meine Antwort bearbeiten –

+0

Noob hier. Ich habe viele Fragen durchsucht. Aber verstanden, dass der Fehler auf meiner Seite war. Entschuldigen! –

0
Intent myIntent = new Intent(FirstActivity.this,SecondActivity.class); 
myIntent.putExtra("value", (int)100); 
startActivity(myIntent); 

in der zweiten Aktivität

Bundle extras = getIntent().getExtras(); 
int value= extras.getInt("value"); 
0

In Ihrer aktuellen Aktivität, erstellen Sie eine neue Intent:

Intent i = new Intent(CurrentActivity.this, NewActivity.class); 
i.putExtra("intValue",100); 
startActivity(i); 

Dann in der neuen Aktivität abrufen diese Werte:

Bundle extras = getIntent().getExtras(); 
if (extras != null) { 
    int value = extras.getInt("intValue"); 
    //The key argument here must match that used in the other activity 
} 

Verwenden Sie diese Technik, um Variablen von einer Aktivität an die andere zu übergeben.

1

Dazu sollten Sie Intent verwenden. Sie können die Idee von den folgenden Codes bekommen;

Angenommen, Sie haben eine int-Variable als;

int x = 2; 

Diesen Code in der Aktivität von wo aus man auf eine andere Aktivität hinwollen:

Intent i = new Intent(getApplicationContext(), SecondActivity.class); 
i.putExtra("xVar", x); 
startActivity(i); 

In der zweiten Aktivität diesen Code verwenden;

Intent i = getIntent(); 
int xVal = i.getIntExtra("xVar", 0); 
0

Sie können die gemeinsamen Einstellungen verwenden, um dieses Problem zu beheben.

In Aktivität A:

int no = 1;

SharedPreferences sharedpreferences = getSharedPreferences (MyPREFERENCES, Context.MODE_PRIVATE);

Editoreditor = sharedpreferences.edit();

editor.putString ("meine_nummer", nein + "");

editor.commit();

Aktivitäts B:

SharedPreferences prefs = getSharedPreferences (MyPREFERENCES, MODE_PRIVATE);

Zeichenfolge m_no = prefs.getString ("my_number", null);