2015-04-06 88 views
2

我想在我的android应用程序中创建一个SearchView,不幸的是几乎所有的例子都是关于在操作栏中实现searchview的。我禁用了操作栏,我想在线性布局内创建searchview。SearchView WITH ACTIONBAR

所以我把搜索查看的的LinearLayout里面,只要你做的XML预览会显示“显示问题”:

java.lang.NullPointerException 
at android.content.res.TypedArray.hasValueOrEmpty(TypedArray.java:845) 
at android.widget.SearchView.<init>(SearchView.java:295) 
at android.widget.SearchView.<init>(SearchView.java:258) 
at android.widget.SearchView.<init>(SearchView.java:254) 
at sun.reflect.GeneratedConstructorAccessor499.newInstance(Unknown Source) 
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) 
at java.lang.reflect.Constructor.newInstance(Constructor.java:526) 
at android.view.LayoutInflater.createView(LayoutInflater.java:607) 
at android.view.BridgeInflater.onCreateView(BridgeInflater.java:82) 
at android.view.LayoutInflater.onCreateView(LayoutInflater.java:682) 
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:741) 
at android.view.BridgeInflater.createViewFromTag(BridgeInflater.java:128) 
at android.view.LayoutInflater.rInflate_Original(LayoutInflater.java:806) 
at android.view.LayoutInflater_Delegate.rInflate(LayoutInflater_Delegate.java:64) 
at android.view.LayoutInflater.rInflate(LayoutInflater.java:782) 
at android.view.LayoutInflater.rInflate_Original(LayoutInflater.java:809) 
at android.view.LayoutInflater_Delegate.rInflate(LayoutInflater_Delegate.java:64) 
at android.view.LayoutInflater.rInflate(LayoutInflater.java:782) 
at android.view.LayoutInflater.inflate(LayoutInflater.java:504) 
at android.view.LayoutInflater.inflate(LayoutInflater.java:385) 
at com.android.layoutlib.bridge.impl.RenderSessionImpl.inflate(RenderSessionImpl.java:410) 
at com.android.layoutlib.bridge.Bridge.createSession(Bridge.java:321) 
at com.android.ide.common.rendering.LayoutLibrary.createSession(LayoutLibrary.java:350) 
at com.android.tools.idea.rendering.RenderService$5.compute(RenderService.java:708) 
at com.android.tools.idea.rendering.RenderService$5.compute(RenderService.java:697) 
at com.intellij.openapi.application.impl.ApplicationImpl.runReadAction(ApplicationImpl.java:932) 
at com.android.tools.idea.rendering.RenderService.createRenderSession(RenderService.java:697) 
at com.android.tools.idea.rendering.RenderService.render(RenderService.java:816) 
at org.jetbrains.android.uipreview.AndroidLayoutPreviewToolWindowManager.doRender(AndroidLayoutPreviewToolWindowManager.java:646) 
at org.jetbrains.android.uipreview.AndroidLayoutPreviewToolWindowManager.access$1700(AndroidLayoutPreviewToolWindowManager.java:82) 
at org.jetbrains.android.uipreview.AndroidLayoutPreviewToolWindowManager$7$1.run(AndroidLayoutPreviewToolWindowManager.java:589) 
at com.intellij.openapi.progress.impl.ProgressManagerImpl$2.run(ProgressManagerImpl.java:178) 
at com.intellij.openapi.progress.ProgressManager.executeProcessUnderProgress(ProgressManager.java:209) 
at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:212) 
at com.intellij.openapi.progress.impl.ProgressManagerImpl.runProcess(ProgressManagerImpl.java:171) 
at org.jetbrains.android.uipreview.AndroidLayoutPreviewToolWindowManager$7.run(AndroidLayoutPreviewToolWindowManager.java:584) 
at com.intellij.util.ui.update.MergingUpdateQueue.execute(MergingUpdateQueue.java:320) 
at com.intellij.util.ui.update.MergingUpdateQueue.execute(MergingUpdateQueue.java:310) 
at com.intellij.util.ui.update.MergingUpdateQueue$2.run(MergingUpdateQueue.java:254) 
at com.intellij.util.ui.update.MergingUpdateQueue.flush(MergingUpdateQueue.java:269) 
at com.intellij.util.ui.update.MergingUpdateQueue.flush(MergingUpdateQueue.java:227) 
at com.intellij.util.ui.update.MergingUpdateQueue.run(MergingUpdateQueue.java:217) 
at com.intellij.util.concurrency.QueueProcessor.runSafely(QueueProcessor.java:238) 
at com.intellij.util.Alarm$Request$1.run(Alarm.java:327) 
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) 
at java.util.concurrent.FutureTask.run(FutureTask.java:262) 
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) 
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) 
at java.lang.Thread.run(Thread.java:745) 

但是当我运行的应用程序,它工作得很好,任何想法,为什么这个nullpointerexception是否被抛出?

这是我的XML代码:

<SearchView 
android:layout_width="wrap_content" 
android:layout_height="wrap_content" 
android:id="@+id/searchView" 
android:iconifiedByDefault="false" 
android:queryHint="Search" 
android:searchIcon="@drawable/search_icon" 
> 
</SearchView> 

,你可以请提供我如何从实例化Java文件这个搜索查看,所以我可以用它一些示例代码?

+0

[This](http://stackoverflow.com/questions/13733460/android-providing-recent-search-suggestions-without-searchable-activity)肯定会回答你的问题,但不同的问题 – Geros 2015-04-06 08:07:32

+0

添加你的代码片段 – Manikandan 2015-04-06 08:28:35

+0

什么是YS说实际上是正确的,没有任何代码的链接,因为我什么也没做。问题是,当我添加提到的片段(SearchView)这个异常apears,但应用程序完美工作,所以我想这个问题只是在IDE中,也许你没有使用android studio,这就是为什么你没有看到这个问题。 – 2015-04-06 16:35:27

回答

1

NullPointerException在尝试渲染SearchView时由IDE(而不是应用程序)抛出。本身似乎没有问题。如果你的应用程序工作正常,那么就忽略它。

+0

NullPointerException不能被忽略!只是因为作品这并不意味着该应用程序是无缺陷的:S 有一天可以产生更糟糕的事情与打桩erros ... – 2015-12-03 11:38:30

+1

明白了,明白了......感谢downvoting没有正确阅读答案。 ** IntelliJ Idea引发异常,而不是由应用**引发。你有能力理解差异吗? IntelliJ Idea本身就是一个JAVA应用程序,就像任何其他Java程序一样,它不时抛出异常...... :) – 2015-12-03 12:03:14

相关问题