Android 将数据从一个活动的EditText传输到另一个活动的EditText

Android 将数据从一个活动的EditText传输到另一个活动的EditText,android,Android,将数据从一个活动传输到另一个活动时,能否从一个EditText传输到另一个EditText活动的 我正在尝试将数据从一个活动的EditText传输到另一个活动的EditText,您可以将第一个EditText的内容作为额外的目的发送到另一个活动。在目标活动中,调用getIntent()提取额外的意图,然后可以对该活动的EditText调用setText() 活动A: String data=myEditText.getText().toString(); Intent i=new Intent(

将数据从一个活动传输到另一个活动时,能否从一个
EditText
传输到另一个
EditText
活动的


我正在尝试将数据从一个
活动的
EditText
传输到另一个
活动的
EditText
您可以将第一个EditText的内容作为额外的目的发送到另一个活动。在目标活动中,调用getIntent()提取额外的意图,然后可以对该活动的EditText调用setText()

活动A:

String data=myEditText.getText().toString();
Intent i=new Intent(ActivityA.this,ActivityB.class); //Create Intent to call ActivityB
i.putExtra("editTextKey",data);
startActivity(i);
活动B:

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

setContentView(R.layout.activity_b_layout);
EditText newEditText=findViewById(R.id.new_edittext_id); //Get the reference to your edittext
String receivedData = getIntent().getStringExtra("editTextKey");
newEditText.setText(receivedData); //Set the data to new editteext
...
}
1)方式

public static AutoCompleteTextView textView;
第一项活动

Intent i = new Intent(this, ActivityTwo.class);
AutoCompleteTextView textView = (AutoCompleteTextView) findViewById(R.id.autocomplete);
String getrec=textView.getText().toString();



//Create the bundle
Bundle bundle = new Bundle();

//Add your data to bundle
bundle.putString(“data”, getrec);

//Add the bundle to the intent
i.putExtras(bundle);

//Fire that second activity
startActivity(i);
从哪里开始你的第二次活动

//Get the bundle
Bundle bundle = getIntent().getExtras();

//Extract the data…
String stuff = bundle.getString(“data”); 
2)方式

public static AutoCompleteTextView textView;
您可以使用访问文本视图

SceondActivity.textview;
3路


在首选项或数据库中存储值意图用于活动之间的通信。您应该使用EditText.getText().toString()从EditText获取文本,并创建一个意图来包装要传递的值,例如

Intent in = new Intent(FirstActivity.this, TargetActivity.class).putExtra("STRING IDENTIFIER","string value from edittext");
您可以检索此值并在EditText中进行设置 选项B使用共享首选项,如我使用的类:

class QueryPreferences 
{
private static final String TEXT_ID = "2";
    static void setPreferences(String text, Context context)
    {
         PreferenceManager.getDefaultSharedPreferences(context)
                          .edit()
                          .putString(TEXT_ID,text)
                          .apply();
    }
    static String getPreferences(Context context)
    {
         return PreferenceManager.getDefaultSharedPreferences(context).getString(TEXT_ID,"");
    }
}
参考:

您可以通过

  • 发送内部数据
  • 静态场
  • WeakReferences的HashMap
  • 持久化对象(sqlite、共享首选项、文件等)
TL;DR:共享数据有两种方式:在意向书的附加文件中传递数据或将数据保存到其他地方。如果数据是原语、字符串或用户定义的对象:将其作为intent extras的一部分发送(用户定义的对象必须实现
Parcelable
)。如果传递复杂对象,则将实例保存在其他位置的单例中,并从启动的活动访问它们

如何以及为什么实施每种方法的一些示例:

在意图内发送数据 关于第二项活动:

Bundle bundle = getIntent().getExtras();
int value = bundle.getInt("some_key");

您是否能够在活动之间传输任何数据?共享您尝试过的代码。请使用Bundle提供从一个活动到另一个活动的传输数据。然后在另一个活动的onStart方法中,从Bundle中获取数据并将其设置为EditText。将EditText传输到TextView时的结构是否相同?我试过了,但是我遇到了一个错误,我在答案中添加了所需的代码。测试它,如果有任何错误,请发布错误日志