Передав EditText другому действию, он показывает мне что-нибудь - PullRequest
0 голосов
/ 11 декабря 2018

У меня есть текст для редактирования в xml, имя которого и когда пишете имя или что-то еще, спасибо, открывает кнопку, на которую я собираюсь нажать, а затем эта нажатая кнопка, и я попадаю в другой вид деятельности, но там мне нужно вставить то, что я написал вMainActivity в EditText.

Это мой код.

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);

Это XML-файл основного действия для EditText и Buttonкоторый отправляется на другой вид деятельности

<EditText android:id="@+id/etSearch" android:imeOptions="actionGo|flagNoExtractUi" style="@style/SearchEditText.MainSearch" />
<Button android:id="@+id/btnSearch" style="@style/ButtonSearch" />

Это xml ожидаемого EditText

<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" />

Ответы [ 6 ]

0 голосов
/ 11 декабря 2018

В этой строке

Intent i = new Intent(ActivitySearchEngine.this, MainActivity.class);

Вы создаете новое намерение вместо того, которое вы передали второму действию.Так что просто замените на

Intent i = getIntent();

И таким образом вы на самом деле получаете пройденное Намерение, которое вы заинтересованы в получении дополнительного от него.

0 голосов
/ 11 декабря 2018

Вы хотите получить намерение, вызвавшее действие, со следующим:

Intent intent = getIntent(); 

Затем вы хотите получить Пакет дополнений из этого намерения, которое было передано:

Bundle extras = intent.getExtras(); 

Оттуда вы можете получить свою строку, которую вы передали вместе с правильным ключом:

extras.getString("TextBox", "This is the default value in case the string extra is null");
0 голосов
/ 11 декабря 2018

В вашем втором занятии:

String text = getIntent().getExtras().getString("TextBox");
0 голосов
/ 11 декабря 2018

в вашем ActivitySearchEngine вместо этого:

Intent i = new Intent(ActivitySearchEngine.this, MainActivity.class)
String text = i.getStringExtra("TextBox");

попробуйте это:

Intent i = getIntent();
String text = i.getStringExtra("TextBox");

в вашем случае вы не получали предыдущее намерение, вы просто создавали новоетот, который вернул бы вас назад, и у этого намерения не было никаких дополнений.Вместо этого я выбрал исходное намерение, а затем получил данные.

0 голосов
/ 11 декабря 2018

Во втором занятии вместо этого

Intent i = new Intent(ActivitySearchEngine.this, MainActivity.class);
String text = i.getStringExtra("TextBox");

Напишите это

String text = getIntent().getExtras().getString("TextBox");

И для показа Google в веб-браузере используйте это

webView.loadUrl("https://www.google.com/search?q=" + text);
0 голосов
/ 11 декабря 2018

Во втором упражнении вам нужно получить текст, выполнив следующие действия:

@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");
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...