如何在Android中从一个活动传递数据到另一个活动

12 浏览
0 Comments

如何在Android中从一个活动传递数据到另一个活动

听起来可能很简单,但我无法让它正常工作。我有两个活动。第一个是一个表单,第二个是根据在第一个活动中输入的值显示来自JSON文件的数据。\n因此,我正在尝试制作一个简单版本。我有一个EditText和一个按钮,所以当他们按下按钮时,EditText中的内容将显示在下一个活动的TextView中。\n以下是我目前的代码:\n主活动\n

static TextView textView;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    textView = (TextView) findViewById(R.id.editText1);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
    getMenuInflater().inflate(R.menu.main, menu);
    return true;
}
public void transferIT(View view){
    Intent intent = new Intent(this, Page.class);
    startActivity(intent);
}
public static String getText(){
    String data = (String) textView.getText();
    return data;
}

\n主XML\n


\n第二个活动\n

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_page);
    setupActionBar();
    TextView enteredValue = (TextView)findViewById(R.id.text);
    enteredValue.setText(MainActivity.getText());
}

\n第二个XML\n


\n通过这种方式,我为EditText的数据创建了一个方法,并在另一个活动中调用它以访问它。目前,当我按下按钮时,它停止工作。那么你对在其他活动中获取表单数据的解决方案是什么?

0
0 Comments

问题的出现原因是:在Android开发中,当我们需要在一个Activity中将数据传递到另一个Activity时,我们需要使用Intent来发送数据。但是,对于一些初学者来说,他们可能不熟悉Intent和Parcelable的概念,也不了解Java中的序列化概念,因此很容易遇到问题。

解决方法是:首先,建议读者对Android中的Intent和Parcelable的概念进行学习。Intent是Android中用于在组件之间传递数据的一种机制。Parcelable是一个接口,用于将对象序列化为字节流,以便在不同的组件之间传递。另外,还建议读者学习Java中的序列化概念,以了解如何在Java中将对象转换为字节流。

一旦读者掌握了这些概念,就可以按照以下步骤在Android中传递数据:

1. 在发送数据的Activity中创建一个Intent对象。

Intent intent = new Intent(this, SecondActivity.class);

2. 使用putExtra()方法将数据添加到Intent中。可以添加不同类型的数据,如字符串、整数、布尔值等。

intent.putExtra("key", value);

3. 启动第二个Activity,并将Intent作为参数传递给startActivity()方法。

startActivity(intent);

4. 在接收数据的Activity中,通过getIntent()方法获取启动该Activity的Intent。

Intent intent = getIntent();

5. 使用getStringExtra()、getIntExtra()等方法从Intent中获取传递的数据。

String data = intent.getStringExtra("key");

通过以上步骤,我们就可以在Android中成功地将数据从一个Activity传递到另一个Activity了。这是一个非常基本的技巧,对于Android开发来说是非常重要的。

总结起来,要在Android中实现Activity之间的数据传递,我们需要使用Intent和Parcelable的概念,并了解Java中的序列化。通过创建Intent对象、使用putExtra()方法添加数据、启动Activity并获取Intent,我们可以成功地在不同的Activity之间传递数据。阅读相关文档和教程可以帮助我们更好地理解和应用这些概念,从而更好地进行Android开发。

0
0 Comments

问题的原因是在第一个活动中,将一个TextView的引用赋值给了一个EditText的变量。由于布局文件中定义的是EditText而不是TextView,所以需要更改为正确的引用。

解决方法是将引用更改为正确的类型,并且在第一个活动中添加一个方法来传递数据给第二个活动。在第一个活动中,通过调用getText().toString()方法获取EditText中的文本内容,并将其存储在一个String变量中。然后使用Intent对象将该变量传递给第二个活动,并在启动第二个活动时使用startActivity()方法。

在第二个活动的onCreate()方法中,通过调用getIntent().getExtras().getString("key")方法获取传递过来的数据,并将其存储在一个String变量中。这样就完成了从一个活动向另一个活动传递数据的过程。

以下是完整的代码示例:

第一个活动中的代码:

EditText ed1;
ed1 = (EditText) findViewById(R.id.editText1);
public void transferIT(View view){
    String value = ed1.getText().toString();
    Intent intent = new Intent(this, Page.class);
    intent.putExtra("key", value);
    startActivity(intent);
}

第二个活动中的代码:

String value = getIntent().getExtras().getString("key");

通过这种方法,可以在Android应用程序的不同活动之间传递数据。

0
0 Comments

在Android中,从一个活动(activity)传递数据到另一个活动是非常常见的需求。为了解决这个问题,我们可以使用Intent来传递数据。

首先,在第一个活动中,我们需要将额外的参数放入Intent中,代码如下:

// 假设Page.class是第二个活动
Intent intent = new Intent(this, Page.class);
intent.putExtra("arg", getText()); // getText()应该不是静态的方法!!!
startActivity(intent);

然后,在第二个活动中,我们可以通过以下方式获取传递的参数:

String passedArg = getIntent().getExtras().getString("arg");
enteredValue.setText(passedArg);

此外,为了方便,在MainActivity中可以将参数arg作为常量进行存储,并在其他地方引用,代码如下:

public static final String ARG_FROM_MAIN = "arg";

通过以上步骤,我们可以轻松地在Android应用程序中实现从一个活动传递数据到另一个活动的功能。

0