In Android: How do I get variables/data from one screen to another?

前端 未结 4 1385
一整个雨季
一整个雨季 2020-12-03 16:05

In android: I\'m trying to take data from one activity/screen to another.

Let\'s say I\'m adding two numbers. I layout my first screen (xml) with 2 EditText views, a

相关标签:
4条回答
  • 2020-12-03 16:42

    First Activity

    Intent myIntent = new Intent();
    myIntent.putExtra("key", "value");
    startActivity(myIntent); 
    

    New Activity

    Intent myIntent = getIntent(); // this is just for example purpose
    myIntent.getExtra("key");
    

    Check out the different types you can use on the Android Dev Site

    Note: If you're looking for a way of sharing an object/data globally then you could extend the Application class. Check out How to declare global variables in Android? (answer by Soonil)

    0 讨论(0)
  • 2020-12-03 16:46

    Take a look at the Some Intent examples section (from Common Tasks and How to Do Them in Android):

    basically, you use myIntent.putExtra (...) to send data (can be String, Int, Boolean etc) to the other receiving end (the other activity)...

    then, result will be passed back into the calling Activity's onActivityResult() method:

    protected void onActivityResult(int requestCode, int resultCode, Intent data){
        // See which child activity is calling us back.
        switch (resultCode) {
            case CHOOSE_FIGHTER:
                // This is the standard resultCode that is sent back if the
                // activity crashed or didn't doesn't supply an explicit result.
                if (resultCode == RESULT_CANCELED){
                    myMessageboxFunction("Fight cancelled");
                } 
                else {
                    myFightFunction(data);
                }
            default:
                break;
        }
    

    H.

    0 讨论(0)
  • 2020-12-03 16:47

    I suppose that You're starting "next screen" using Intent (it's the way it should be done).

    In Intent you can pass extras (putExtra) and in onCreate in "next activity" you can getIntent().getXExtra() (substitute X with field type)

    0 讨论(0)
  • 2020-12-03 16:54

    A sample from my project. We have to use Bundle to get the data.

    Use the code in the from/first activity yo set the data. You can set all kind of data types including arrays.

    Intent i = new Intent(this, LanguageSetting.class);
    i.putExtra("From", 1);
    startActivity(i);
    

    How to retrive the data, write the below code in the new/second activity.

    Intent myIntent = getIntent();
    Bundle b = myIntent.getExtras();
    intCameFrom = b.getInt("From");
    
    0 讨论(0)
提交回复
热议问题