将值从一个类中的int变量传递到另一个类

时间:2016-07-26 10:06:54

标签: android android-intent

我正在尝试将一个int变量从一个活动类(A)传递给另一个活动类(B)。由于我是初学者,我被困在这里。

我尝试了很多方法,但每次在调试模式下运行代码时,我都可以看到传入第二个类的int值变为0。

活动代码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);



   }

活动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***********************

}

6 个答案:

答案 0 :(得分:2)

您需要使用Intent: 活动A:

doneButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

                 Intent intent = new Intent(context, ActivityB.class);
                 intent.putExtra("my_value", 2); //2 is the value you want to pass
                 intent.putExtra("UserBranch", userbranch);
                 startActivity(intent);

            }
        });

活动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 

答案 1 :(得分:1)

您始终可以使用intent.putExtra()方法,例如:

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

并通过以下方式获取ActivityB

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

哦提醒一下,你应该首先在谷歌或直接在SO上查询你的问题,因为你的问题是一个非常普遍的问题,你可以躲避那个反对的投票。

答案 2 :(得分:1)

为此你应该使用 Intent 。你可以从下面的代码中获得想法;

假设你有int变量as;

int x = 2;

将此代码放在您要转到另一个活动的活动中:

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

在第二个活动中使用此代码;

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

答案 3 :(得分:0)

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

在第二项活动中

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

答案 4 :(得分:0)

在您当前的活动中,创建一个新的意图:

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

然后在新的Activity中,检索这些值:

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

使用此技术将变量从一个Activity传递到另一个Activity。

答案 5 :(得分:0)

您可以使用“共享”偏好设置来解决此问题。

在活动A中:

int no = 1;

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

编辑器编辑器= sharedpreferences.edit();

editor.putString(" my_number",no +"");

editor.commit();

在活动B中:

SharedPreferences prefs = getSharedPreferences(MyPREFERENCES,MODE_PRIVATE);

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