gpt4 book ai didi

java - 如何在android中将数据从一个 Activity 传输到另一个 Activity

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:51:55 26 4
gpt4 key购买 nike

这听起来很简单,但我做不到。我有两个 Activity 。第一个是表单,第二个是根据在第一个 Activity 中输入的值显示来自 JSON 文件的数据。

所以我想做一个简单的版本。我有一个 EditText 和一个按钮,所以当他们按下按钮时,EditText 中的任何内容都将出现在下一个 Activity 的 TextView 中。

到目前为止,这是我的代码:主要 Activity

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) {
// Inflate the menu; this adds items to the action bar if it is present.
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;
}

主要 XML

<EditText
android:id="@+id/editText1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignTop="@+id/textView1"
android:layout_centerHorizontal="true"
android:ems="10"
android:hint="Enter Text to transfer" />

<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:text="Transfer it"
android:onClick="transferIT" />

第二个 Activity

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_page);
// Show the Up button in the action bar.
setupActionBar();


TextView enteredValue = (TextView)findViewById(R.id.text);

enteredValue.setText(MainActivity.getText());

}

第二个 XML

<TextView
android:id="@+id/text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_marginTop="58dp" />

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

最佳答案

在第一个 Activity 中,您应该像这样为 Intent 添加额外的参数:

// I assume Page.class is your second activity
Intent intent = new Intent(this, Page.class);
intent.putExtra("arg", getText()); // getText() SHOULD NOT be static!!!
startActivity(intent);

然后在第二个 Activity 中,您像这样检索参数:

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

最好将 arg 字符串作为常量存储在 MainActivity 中,并始终在其他地方引用它。

public static final String ARG_FROM_MAIN = "arg";

关于java - 如何在android中将数据从一个 Activity 传输到另一个 Activity ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20169993/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com