Поиск идентификатора просмотра поиска приводит к сбою моего приложения/программы ⇐ JAVA
Поиск идентификатора просмотра поиска приводит к сбою моего приложения/программы
Я разработал базовую программу, в которой есть список (представление переработчика), и вы можете осуществлять поиск по нему. Но проблема, с которой я столкнулся, возникла, когда я попытался интегрировать функцию поиска. При попытке найти идентификатор представления поиска мое приложение аварийно завершает работу. Я также пытался использовать EditText, но столкнулся с той же проблемой. Строка searchViewHx = findViewById(R.id.searchHx) является ошибкой
import androidx.appcompat.app.AppCompatActivity; импортировать androidx.recyclerview.widget.LinearLayoutManager; импортировать androidx.recyclerview.widget.RecyclerView; импортировать android.app.AlertDialog; импортировать android.content.DialogInterface; импортировать android.os.Bundle; импортировать android.view.View; импортировать android.widget.EditText; импортировать android.widget.ImageView; импортировать android.widget.SearchView; импортировать android.widget.Toast; импортировать java.util.ArrayList; импортировать java.util.List; публичный класс MainActivity расширяет AppCompatActivity { RecyclerView recyclerView; //RecyclerAdapter recyclerAdapter; ArrayList почвенный список = новый ArrayList(); ArrayList замечаниеList = новый ArrayList(); ImageView удалить все; AlertDialog.Builder deleteAllBuilder; частный SearchView searchViewHx; //РедактироватьТекст searchEdit; @Override protected void onCreate (Bundle saveInstanceState) { super.onCreate(saveInstanceState); setContentView(R.layout.activity_main); recyclerView = findViewById(R.id.recyclerView); recyclerView.setLayoutManager(новый LinearLayoutManager(this)); deleteAll = findViewById(R.id.deleteAll); searchViewHx = findViewById(R.id.searchHx); //ТОТ, КОТОРЫЙ ВЫЗЫВАЕТ ОШИБКУ //searchViewHx.clearFocus(); /*searchViewHx.setOnQueryTextListener(новый SearchView.OnQueryTextListener(){ @Override общедоступное логическое значение onQueryTextSubmit (строковый запрос) { вернуть ложь; } @Override общедоступное логическое значение onQueryTextChange (String newText) { filterList (новыйтекст); вернуть истину; } });*/ SoilList.add("Почва 1"); SoilList.add("Почва 2"); SoilList.add("Почва 3"); SoilList.add("Почва 4"); SoilList.add("Почва 5"); замечаниеList.add("Пройдено"); замечаниеList.add("Ошибка"); замечаниеList.add("Пройдено"); замечаниеList.add("Ошибка"); замечаниеList.add("Ошибка"); initRecyclerView(); deleteAllBuilder = новый AlertDialog.Builder(это); //ИЗМЕНИТЬ ЭТО deleteAll.setOnClickListener(новый View.OnClickListener(){ @Override public void onClick (Просмотр) { deleteAllBuilder.setTitle("Оповещение") .setMessage("Хотите удалить все?") .setCancelable(истина) .setPositiveButton("Да", новый DialogInterface.OnClickListener() { @Override public void onClick (диалог DialogInterface, int that) { //метод, который удаляет все hx из списка и карты } }) .setNegativeButton("Нет", новый DialogInterface.OnClickListener() { @Override public void onClick (диалог DialogInterface, int that) { } }) .показывать(); } }); } /*private void filterList(String text) { List filteredList = новый ArrayList(); filteredList.addAll(список почв); for(Строковый элемент: filteredList){ if(item.toLowerCase().contains(text.toLowerCase()))){ filteredList.add(пункт); } если (filteredList.isEmpty()) { Toast.makeText(this, «Данные не найдены», Toast.LENGTH_SHORT).show(); }еще{ recyclerAdapter.setFilteredList(filteredList); } } }*/ частная пустота initRecyclerView(){ RecyclerAdapter recyclerAdapter = новый RecyclerAdapter (soilList,markList); recyclerView.setAdapter(recyclerAdapter); } } XML-ФАЙЛ:
Я убедился, что представление поиска находится в правильном XML-файле макета, и убедился, что использую правильный идентификатор представления поиска. Я импортировал нужный класс и попробовал редактировать текст, чтобы проверить, есть ли у него такая же проблема.
Я разработал базовую программу, в которой есть список (представление переработчика), и вы можете осуществлять поиск по нему. Но проблема, с которой я столкнулся, возникла, когда я попытался интегрировать функцию поиска. При попытке найти идентификатор представления поиска мое приложение аварийно завершает работу. Я также пытался использовать EditText, но столкнулся с той же проблемой. Строка searchViewHx = findViewById(R.id.searchHx) является ошибкой
import androidx.appcompat.app.AppCompatActivity; импортировать androidx.recyclerview.widget.LinearLayoutManager; импортировать androidx.recyclerview.widget.RecyclerView; импортировать android.app.AlertDialog; импортировать android.content.DialogInterface; импортировать android.os.Bundle; импортировать android.view.View; импортировать android.widget.EditText; импортировать android.widget.ImageView; импортировать android.widget.SearchView; импортировать android.widget.Toast; импортировать java.util.ArrayList; импортировать java.util.List; публичный класс MainActivity расширяет AppCompatActivity { RecyclerView recyclerView; //RecyclerAdapter recyclerAdapter; ArrayList почвенный список = новый ArrayList(); ArrayList замечаниеList = новый ArrayList(); ImageView удалить все; AlertDialog.Builder deleteAllBuilder; частный SearchView searchViewHx; //РедактироватьТекст searchEdit; @Override protected void onCreate (Bundle saveInstanceState) { super.onCreate(saveInstanceState); setContentView(R.layout.activity_main); recyclerView = findViewById(R.id.recyclerView); recyclerView.setLayoutManager(новый LinearLayoutManager(this)); deleteAll = findViewById(R.id.deleteAll); searchViewHx = findViewById(R.id.searchHx); //ТОТ, КОТОРЫЙ ВЫЗЫВАЕТ ОШИБКУ //searchViewHx.clearFocus(); /*searchViewHx.setOnQueryTextListener(новый SearchView.OnQueryTextListener(){ @Override общедоступное логическое значение onQueryTextSubmit (строковый запрос) { вернуть ложь; } @Override общедоступное логическое значение onQueryTextChange (String newText) { filterList (новыйтекст); вернуть истину; } });*/ SoilList.add("Почва 1"); SoilList.add("Почва 2"); SoilList.add("Почва 3"); SoilList.add("Почва 4"); SoilList.add("Почва 5"); замечаниеList.add("Пройдено"); замечаниеList.add("Ошибка"); замечаниеList.add("Пройдено"); замечаниеList.add("Ошибка"); замечаниеList.add("Ошибка"); initRecyclerView(); deleteAllBuilder = новый AlertDialog.Builder(это); //ИЗМЕНИТЬ ЭТО deleteAll.setOnClickListener(новый View.OnClickListener(){ @Override public void onClick (Просмотр) { deleteAllBuilder.setTitle("Оповещение") .setMessage("Хотите удалить все?") .setCancelable(истина) .setPositiveButton("Да", новый DialogInterface.OnClickListener() { @Override public void onClick (диалог DialogInterface, int that) { //метод, который удаляет все hx из списка и карты } }) .setNegativeButton("Нет", новый DialogInterface.OnClickListener() { @Override public void onClick (диалог DialogInterface, int that) { } }) .показывать(); } }); } /*private void filterList(String text) { List filteredList = новый ArrayList(); filteredList.addAll(список почв); for(Строковый элемент: filteredList){ if(item.toLowerCase().contains(text.toLowerCase()))){ filteredList.add(пункт); } если (filteredList.isEmpty()) { Toast.makeText(this, «Данные не найдены», Toast.LENGTH_SHORT).show(); }еще{ recyclerAdapter.setFilteredList(filteredList); } } }*/ частная пустота initRecyclerView(){ RecyclerAdapter recyclerAdapter = новый RecyclerAdapter (soilList,markList); recyclerView.setAdapter(recyclerAdapter); } } XML-ФАЙЛ:
Я убедился, что представление поиска находится в правильном XML-файле макета, и убедился, что использую правильный идентификатор представления поиска. Я импортировал нужный класс и попробовал редактировать текст, чтобы проверить, есть ли у него такая же проблема.
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Поиск идентификатора просмотра поиска приводит к сбою моего приложения/программы
Anonymous » » в форуме JAVA - 0 Ответы
- 37 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Поиск идентификатора просмотра поиска приводит к сбою моего приложения/программы
Anonymous » » в форуме Android - 0 Ответы
- 44 Просмотры
-
Последнее сообщение Anonymous
-