我想在我的应用程序中实现一个简单的搜索功能。
我已经实现了所有与Layout相关的东西,它没有问题。
现在,我想使用搜索功能从ListView
找到项目。
问题是,我的ListView
不属于同一个班级。当我尝试从其他班级访问我的ListView
时,我会继续获得NullPointerException
。
这就是我在MainActivity中所拥有的:
public boolean onQueryTextChange(String newText) {
// this is your adapter that will be filtered
if (TextUtils.isEmpty(newText))
{
// new otherActivity().listView.clearTextFilter(); NullPointerException
}
else
{
// new otherActivity().listView.setFilterText(newText.toString()); NullPointerException
}
return true;
}
在我的otherActivity中,ListView listView;
方法之外的onCreate()
和listView = (ListView) findViewById(R.id.listView);
方法中的onCreate()
。{/ p>
我还尝试将整个ListView
放在onCreate()
方法之外,但最终还是NullPointerException
。
答案 0 :(得分:0)
有一些可能的方法可以在具有引用的类中使用ListView
。
1.) Pass reference of ListView in other class constructor
2.) create a static getter method of ListView in your Activity having ListView
3.) Use Application class to setter and getter of ListView instance
4.) Another way is have an instance of Activity with as static getter method and
use that to get instance of your ListView in another Class.
上述可能的方式可能因您的要求而异
答案 1 :(得分:0)
new otherActivity()
您不应该以这种方式创建活动。
使用Intent代替启动您的活动。