我在xml中有一个编辑文本,其中有名称,写名字或其他东西时,谢谢打开了一个要单击的按钮,然后这个单击的按钮使我进入了另一个活动,但是我需要在其中粘贴我写的内容EditText中的MainActivity。
这是我的代码。
Button btnSearch;
public EditText searchPlugin;
searchPlugin = findViewById(R.id.etSearch);
btnSearch = findViewById(R.id.btnSearch);
btnSearch.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(MainActivity.this, ActivitySearchEngine.class);
String test = searchPlugin.getText().toString();
intent.putExtra("TextBox", test);
startActivity(intent);
}
});
这是另一个活动
setContentView(R.layout.activity_search_result);
Intent i = new Intent(ActivitySearchEngine.this, MainActivity.class);
String text = i.getStringExtra("TextBox");
searchPlugin = findViewById(R.id.etSearch);
webView = findViewById(R.id.webView);
searchPlugin.setText(text);
这是发送给另一个活动的EditText和Button的主要活动的xml
<EditText android:id="@+id/etSearch" android:imeOptions="actionGo|flagNoExtractUi" style="@style/SearchEditText.MainSearch" />
<Button android:id="@+id/btnSearch" style="@style/ButtonSearch" />
这是预期的EditText
的xml
<EditText android:id="@+id/etSearch" style="@style/SearchEditText.MainSearch"/>
<ImageButton android:id="@id/btnClearSearch" style="@style/ImageButtonClose" />
<ImageButton android:id="@id/imgBtnStopLoad" style="@style/ImageViewStopLoad" />
答案 0 :(得分:3)
在您的第二项活动中:
String text = getIntent().getExtras().getString("TextBox");
答案 1 :(得分:2)
在第二个活动中,您需要执行以下操作来检索文本:
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
setContentView(R.layout.activity_search_result); //after this
Bundle arguments = this.getIntent().getExtras();
String yourString = arguments.getString("TextBox");
}
答案 2 :(得分:2)
在第二个活动中代替
Intent i = new Intent(ActivitySearchEngine.this, MainActivity.class);
String text = i.getStringExtra("TextBox");
将此
String text = getIntent().getExtras().getString("TextBox");
要在webView中显示google,请使用此
webView.loadUrl("https://www.google.com/search?q=" + text);
答案 3 :(得分:2)
在您的ActivitySearchEngine中,而不是以下内容:
Intent i = new Intent(ActivitySearchEngine.this, MainActivity.class)
String text = i.getStringExtra("TextBox");
尝试一下:
Intent i = getIntent();
String text = i.getStringExtra("TextBox");
在您的情况下,您没有得到先前的意图,您只是在创建一个新的意图,它将使您返回,并且该意图没有任何额外的内容。相反,我要做的是获取原始意图,然后获取数据。
答案 4 :(得分:2)
您希望通过以下方式获得调用活动的意图:
Intent intent = getIntent();
然后,您想从传递的意图中获得额外的捆绑包:
Bundle extras = intent.getExtras();
从那里,您可以获取带有正确密钥传递的字符串:
extras.getString("TextBox", "This is the default value in case the string extra is null");
答案 5 :(得分:2)
在这一行
Intent i = new Intent(ActivitySearchEngine.this, MainActivity.class);
您正在创建一个新的意图,而不是传递给第二个活动的意图。因此,只需替换为
Intent i = getIntent();
这样,您实际上就可以获取已传递的Intent,您有兴趣从中获取更多的信息。