NullPointerException: в отношении использования RecyclerView в приложении для Android
Привет всем, кто плохо знаком с разработкой для Android, но столкнулся с проблемой, когда я пытаюсь реализовать функцию поиска в своем приложении.
Error: java.lang.NullPointerException: Attempt to invoke virtual
method 'boolean
android.support.v7.widget.RecyclerView$ViewHolder.shouldIgnore()' on a
null object reference.
Я прочитал несколько блогов (в том числе уже на Stackru) и страницу разработчика Android и не могу избавиться от этой ошибки, которая вылетает из моего приложения. Я определенно могу показать исходный код, если это поможет.
Ошибка возникает, когда я называю это
recyclerView.**setLayoutManager**(new
StaggeredGridLayoutManager(temp.ITEMS.size(),0));
Если люди знакомы с заданием по умолчанию, я использую этот файл и создаю простое представление инвентаря, которое извлекается из базы данных. Все работало нормально, прежде чем я попытался реализовать функцию поиска.
Буду признателен за любую оказанную помощь.
public class RebeEssentialsProductListActivity extends AppCompatActivity {
/**
* Whether or not the activity is in two-pane mode, i.e. running on a tablet
* device.
*/
private boolean mTwoPane;
RecyclerView recyclerView;
MyAdapter adapter;
SearchView sv;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_rebeessentialsproduct_list);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
toolbar.setTitle(getTitle());
FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
fab.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG)
.setAction("Action", null).show();
}
});
// Show the Up button in the action bar.
ActionBar actionBar = getSupportActionBar();
if (actionBar != null) {
actionBar.setDisplayHomeAsUpEnabled(true);
}
if (findViewById(R.id.rebeessentialsproduct_detail_container) != null) {
mTwoPane = true;
}
recyclerView = (RecyclerView) findViewById(R.id.rebeessentialsproduct_list);
sv=findViewById(R.id.mSearch);
DummyContent temp = new DummyContent();
adapter = new MyAdapter(this,temp.ITEMS);
recyclerView.setLayoutManager(new StaggeredGridLayoutManager(temp.ITEMS.size(),0));
recyclerView.setAdapter(adapter);
sv.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
@Override
public boolean onQueryTextSubmit(String s) {
return false;
}
@Override
public boolean onQueryTextChange(String s) {
adapter.getFilter().filter(s);
return false;
}
});
}
@Override
protected void onResume() {
super.onResume();
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
int id = item.getItemId();
if (id == android.R.id.home) {
NavUtils.navigateUpFromSameTask(this);
return true;
}
return super.onOptionsItemSelected(item);
}
}