Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/182.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Android中,如何将数据从一个活动发送到另一个活动?_Android - Fatal编程技术网

在Android中,如何将数据从一个活动发送到另一个活动?

在Android中,如何将数据从一个活动发送到另一个活动?,android,Android,我的应用程序有2个活动 第一个活动只是一个简单的表单,用户在其中输入课程信息(课程名称、教授等)。第一个活动传递应该存储在列表中的数据 在第二个活动中。问题是,在第一次之后,只有第一个课程存储在列表中,第二个活动中没有添加任何新内容 我如何才能做到这一点?在您的第一个活动中: Intent intent = new Intent(FirstActivity.this, SecondActivity.class); intent.putExt

我的应用程序有2个活动

  • 第一个活动只是一个简单的表单,用户在其中输入课程信息(课程名称、教授等)。第一个活动传递应该存储在列表中的数据

  • 在第二个活动中。问题是,在第一次之后,只有第一个课程存储在列表中,第二个活动中没有添加任何新内容


  • 我如何才能做到这一点?

    在您的第一个活动中:

    Intent intent = new Intent(FirstActivity.this, SecondActivity.class);
                                intent.putExtra("login", jObj.getString(KEY_LOGIN));
                                intent.putExtra("mdp", jObj.getString(KEY_MDP));
                                intent.putExtra("prenom", jObj.getString(KEY_PRENOM));
                                intent.putExtra("nom", jObj.getString(KEY_NOM));
                                intent.putExtra("mail", jObj.getString(KEY_MAIL));
                                intent.putExtra("tel", jObj.getString(KEY_TEL));
                                startActivity(intent);
    
    Intent intent = getIntent();
    
              if (intent != null) {
                  login = intent.getStringExtra("login");
                  mdp = intent.getStringExtra("mdp");
    
                  items.add(intent.getStringExtra("login"));
                  items.add(intent.getStringExtra("prenom"));
                  items.add(intent.getStringExtra("nom"));
                  items.add(intent.getStringExtra("mail"));
                  items.add(intent.getStringExtra("tel"));
               }
    
    在第二个活动中:

    Intent intent = new Intent(FirstActivity.this, SecondActivity.class);
                                intent.putExtra("login", jObj.getString(KEY_LOGIN));
                                intent.putExtra("mdp", jObj.getString(KEY_MDP));
                                intent.putExtra("prenom", jObj.getString(KEY_PRENOM));
                                intent.putExtra("nom", jObj.getString(KEY_NOM));
                                intent.putExtra("mail", jObj.getString(KEY_MAIL));
                                intent.putExtra("tel", jObj.getString(KEY_TEL));
                                startActivity(intent);
    
    Intent intent = getIntent();
    
              if (intent != null) {
                  login = intent.getStringExtra("login");
                  mdp = intent.getStringExtra("mdp");
    
                  items.add(intent.getStringExtra("login"));
                  items.add(intent.getStringExtra("prenom"));
                  items.add(intent.getStringExtra("nom"));
                  items.add(intent.getStringExtra("mail"));
                  items.add(intent.getStringExtra("tel"));
               }
    

    通常,您可以通过以下方式将数据从一个
    活动
    传递到另一个
    活动:

    在您的第一个活动中:

    // Create your Intent
    Intent intent = new Intent(context, TargetActivity.class);
    
    // Now you can add extras to the intent, you identify extras with a String key
    intent.putExtra("text", someString);
    intent.putExtra("amount", someInteger);
    
    // Then you start your Activity with this Intent
    startActivity(intent);
    
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    
        // Only get data from Intent when the Activity is new
        if(savedInstanceState == null) {
            Intent intent = getIntent();
    
            // Now you read the values from the Intent
            String someString = intent.getStringExtra("text");
    
            int someInteger = intent.getIntExtra("amount", 0);
        }
    }
    
    在第二个活动中:

    // Create your Intent
    Intent intent = new Intent(context, TargetActivity.class);
    
    // Now you can add extras to the intent, you identify extras with a String key
    intent.putExtra("text", someString);
    intent.putExtra("amount", someInteger);
    
    // Then you start your Activity with this Intent
    startActivity(intent);
    
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    
        // Only get data from Intent when the Activity is new
        if(savedInstanceState == null) {
            Intent intent = getIntent();
    
            // Now you read the values from the Intent
            String someString = intent.getStringExtra("text");
    
            int someInteger = intent.getIntExtra("amount", 0);
        }
    }
    

    嘿,这很简单,看看代码

    Intent i = new Intent(getApplicationContext(), Confirmation.class)  
    i.putExtra("name",etName.getText().toString()));
    i.putExtra("pass",etPass.getText().toString());
    startActivity(i); 
    
    用于在下一个活动中接收

        Bundle extras = getIntent().getExtras();
                      String strEmployeeID="";
                      if (extras != null)
                      {
    
                          String value = extras.getString("name");
                                  String value1 = extras.getString("pass");
        //                
    Toast.makeText(getBaseContext(),  value, Toast.LENGTH_LONG).show();
                          strEmployeeID = value;
                                   strEmployeePass = value1;
                      }
    

    如果要在两个活动之间发送数据,必须调用以下一个

     startActivityForResult(getcontext(), SecondActivity.class);
    
    调用此函数时,活动将启动第二个。然后,对该意图进行第二次响应,并使用必要的数据进行回复

     public void startActivityForResult(Intent intent, int requestCode, Bundle options) {
            if (mParent == null) {
                Instrumentation.ActivityResult ar =
                    mInstrumentation.execStartActivity(
                        this, mMainThread.getApplicationThread(), mToken, this,
                        intent, requestCode, options);
                if (ar != null) {
                    mMainThread.sendActivityResult(
                        mToken, mEmbeddedID, requestCode, ar.getResultCode(),
                        ar.getResultData());
                }
                if (requestCode >= 0) {
    
                    mStartedActivity = true;
                }
            } else {
                if (options != null) {
                    mParent.startActivityFromChild(this, intent, requestCode, options);
                } else {
                    // Note we want to go through this method for compatibility with
                    // existing applications that may have overridden it.
                    mParent.startActivityFromChild(this, intent, requestCode);
                }
            }
        }
    
    在一个活动之后,您必须在第一个活动(从意图调用的位置)上调用它。它有助于从第二个活动接收回复数据

    public void onActivityResult(int requestCode, int resultCode, Intent data) {
    
            if(!isFeatureInstalled(getContext()))
                return;
    
            if(requestCode == GET_REMINDER_DETAILS && resultCode == Activity.RESULT_OK)
            {
                mFilled = true;
                fillDataFromIntent(data);
                checkALertRequired.setChecked(true);
            }
        }
    

    就这样做吧:

    将数据从第一个活动传递到第二个活动:

    Intent intent = new Intent(yourafirstctivity.this,Yoursecondactivity.class);
           intent.putExtra("yourkey", yourvalue);
           intent.putExtra("yourkey", yourvalue);
           intent.putExtra("yourkey", yourvalue);
           startActivity(intent);
    
    @Override
    protected void onCreate(Bundle savedInstanceState) {
    
    super.onCreate(savedInstanceState);
    requestWindowFeature(Window.FEATURE_NO_TITLE);
    setContentView(R.layout.yourlayout);
    
    
    String yourstring = getIntent().getExtras().getString("yourkey");
    String yourstring = getIntent().getExtras().getString("yourkey");
    String yourstring = getIntent().getExtras().getString("yourkey");
    
    }
    
    并获取从第一个活动到第二个活动的数据:

    Intent intent = new Intent(yourafirstctivity.this,Yoursecondactivity.class);
           intent.putExtra("yourkey", yourvalue);
           intent.putExtra("yourkey", yourvalue);
           intent.putExtra("yourkey", yourvalue);
           startActivity(intent);
    
    @Override
    protected void onCreate(Bundle savedInstanceState) {
    
    super.onCreate(savedInstanceState);
    requestWindowFeature(Window.FEATURE_NO_TITLE);
    setContentView(R.layout.yourlayout);
    
    
    String yourstring = getIntent().getExtras().getString("yourkey");
    String yourstring = getIntent().getExtras().getString("yourkey");
    String yourstring = getIntent().getExtras().getString("yourkey");
    
    }
    

    你发布一些相关代码怎么样?向我们展示您迄今为止所做的尝试。请发布您的代码,以帮助您成为合适的ans谢谢:)下面是一个关于如何在活动之间切换和在活动之间发送数据的好例子:谢谢Chetak Bhimani