我正在创建一个应用程序,包括从here下载的操作栏上的搜索小部件,我已将其放在我的layout.xml中,但它在xml上显示错误名为
无法实例化以下类:无法实例化以下类: - com.milan.searchmenu.persistentsearch.SearchBox(Open Class,Show Error Log) 有关详细信息,请参阅错误日志(窗口>显示视图)。 提示:在Eclipse中显示时,在自定义视图中使用View.isInEditMode()来跳过代码 java.lang.NullPointerException 通过运行应用程序也运行时出现空指针异常,任何人都可以告诉我如何解决这个问题: 这是我的活动:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.manual);
ActionBar actionbar;
actionbar = getActionBar();
search = (SearchBox) findViewById(R.id.searchbox);
search.enableVoiceRecognition(this);
for(int x = 0; x < 10; x++){
com.milan.searchmenu.persistentsearch.SearchResult option = new SearchResult("Result " + Integer.toString(x), getResources().getDrawable(R.drawable.ic_history));
search.addSearchable(option);
}
search.setMenuListener(new MenuListener(){
@Override
public void onMenuClick() {
//Hamburger has been clicked
Toast.makeText(Manual.this, "Menu click", Toast.LENGTH_LONG).show();
}
});
search.setSearchListener(new SearchListener() {
@Override
public void onSearchTermChanged() {
// TODO Auto-generated method stub
}
@Override
public void onSearchOpened() {
// TODO Auto-generated method stub
}
@Override
public void onSearchClosed() {
// TODO Auto-generated method stub
}
@Override
public void onSearchCleared() {
// TODO Auto-generated method stub
}
@Override
public void onSearch(String result) {
Toast.makeText(Manual.this, result +" Searched", Toast.LENGTH_LONG).show();
}
});
这是我的XML:
<RelativeLayout
android:id="@+id/Relative_layout"
android:layout_width="wrap_content"
android:layout_height="51dp"
android:layout_alignParentLeft="true"
android:layout_alignParentRight="true"
android:layout_alignParentTop="true"
android:background="#673AB7">
<com.milan.searchmenu.persistentsearch.SearchBox
android:layout_width="wrap_content"
android:id="@+id/searchbox"
android:layout_height="wrap_content">
</com.milan.searchmenu.persistentsearch.SearchBox>
</RelativeLayout>
<android.support.v4.view.ViewPager
android:id="@+id/pager"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/pager_sliding_tab_strip">
</android.support.v4.view.ViewPager>
<com.milan.tabs.pagerslidingstrip.PagerSlidingTabStrip
android:id="@+id/pager_sliding_tab_strip"
android:layout_width="match_parent"
android:layout_height="50dp"
android:layout_alignParentLeft="true"
android:layout_below="@+id/Relative_layout"
android:textSize="15dp"
app:pstsShouldExpand="true"
app:pstsDividerColor="#B39DDB"
app:pstsIndicatorHeight="45dp"
android:background="#673AB7"
app:pstsIndicatorColor="#FFFFFF">
</com.milan.tabs.pagerslidingstrip.PagerSlidingTabStrip>
}
答案 0 :(得分:0)
您需要将下载的库添加为模块的依赖项。在Android Studio中执行以下操作
答案 1 :(得分:0)
从帖子中我理解的是,在开发应用程序而不是运行时,您遇到了这个问题。
如果问题是布局文件未在设计视图中加载,那么在布局中使用的SearchBox控件将是一个问题。
com.milan.searchmenu.persistentsearch.SearchBox
在自定义视图中,在设计视图中渲染时,它无法完全运行。例如,如果自定义视图正在从资产等访问某些内容,那么该依赖项将仅在运行时解析,而不是在设计模式下解析,因此您会收到此错误。
因此,为了修复,您需要将这些代码放在View.isInEditMode()的if块中。