将字符串从 1 日 Activity 的 Edittext 发送到 2 日 Activity 的 Edittext

Send String from Edittext on 1st Activity to the Edittext on the 2nd Activity

我在第一个 activity 上将一些字符串写入 Edittext,我试图通过按 Button 将它发送到另一个 activity 上的 Edittext,但我的代码不起作用,什么都没发生,我不知道我还能在这里做什么也许有人可以帮助我

我的第一个 onClick 方法 activity:

public void calendarOR(View v, AdapterView<?> parent, int position, long id) {
        String data = cala.getText().toString();
        Intent intent = new Intent(getApplicationContext(), calendar.class);
        intent.putExtra("id",data);
        startActivity(intent);

我的第二个activity代码:

Bundle extras = getIntent().getExtras();
if (extras != null) {
    userId = extras.getLong("id");
}
if (userId > 0) {
    userCursor = db.rawQuery("select * from " + dbelper.TABLE + " where " + dbelper.COLUMN_ID + "=?", new String[]{String.valueOf(userId)});
    userCursor.moveToFirst();
    date.setText(userCursor.getString(1));
    userCursor.close();
}

您正在输入 String 数据类型并试图获得 long。更改第二个 activity 以获取字符串形式的“id”。

userId = extras.getString("id");

然后

if (userId != null) {
    userCursor = db.rawQuery("select * from " + dbelper.TABLE + " where " + dbelper.COLUMN_ID + "=?", new String[]{userId});
    userCursor.moveToFirst();
    date.setText(userCursor.getString(1));
    userCursor.close();
}

如果 userId 为空或数据不在数据库中,您可能还想打印日志消息以帮助调试。

无关,但您可能想要改变您的意图,不使用应用程序上下文,就像这样,以启动 calendar activity.

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

在第二个 activity 代码中执行此操作:

String data =getIntent().getStringExtra("id");