-2

레이아웃당신이 액션 바에서 원하는 경우는 액션 바

<?xml version="1.0" encoding="utf-8"?> 

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:app="http://schemas.android.com/apk/res-auto" 
xmlns:tools="http://schemas.android.com/tools" 
android:layout_width="wrap_content" 
android:layout_height="match_parent" 
android:id="@+id/llist" 
tools:context="com.android.parteek.contentprovider.Main2Activity"> 

<android.support.v7.widget.SearchView 
android:layout_width="wrap_content" 
android:layout_height="wrap_content" 
android:id="@+id/serch"> 
</android.support.v7.widget.SearchView> 

<ListView 
    android:id="@+id/list" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    tools:context="com.android.parteek.contentprovider.Main2Activity"> 

</ListView> 

</LinearLayout> 

코드

package com.android.parteek.contentprovider; 

import android.content.ContentResolver; 
import android.content.DialogInterface; 
import android.content.Intent; 
import android.database.Cursor; 
import android.support.v7.app.AlertDialog; 
import android.support.v7.app.AppCompatActivity; 
import android.os.Bundle; 
import android.support.v7.widget.SearchView; 
import android.util.Log; 
import android.view.Menu; 
import android.view.View; 
import android.widget.AdapterView; 
import android.widget.ListView; 
import android.widget.Toast; 

import java.util.ArrayList; 

public class Main2Activity extends AppCompatActivity implements AdapterView.OnItemLongClickListener, SearchView.OnQueryTextListener { 
ListView l; 
ArrayList<Bean> arrayList; 
UserAdapterr userAdapterr; 
ContentResolver contentResolver; 
SearchView searchView; 
Bean b,b1; 
int pos; 
void views(){ 
    l=(ListView)findViewById(R.id.list); 
    searchView=(SearchView)findViewById(R.id.serch); 

} 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main2); 
    views(); 
    contentResolver=getContentResolver(); 
    retrieve(); 
} 
@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    getMenuInflater().inflate(R.menu.searchmenu,menu); 
    searchView=(SearchView)menu.findItem(R.id.search).getActionView(); 
    searchView.setIconifiedByDefault(true); 
    searchView.setOnQueryTextListener(this); 
    searchView.setQueryHint("search....."); 

    return super.onCreateOptionsMenu(menu); 
} 


@Override 
public boolean onQueryTextSubmit(String query) { 
    return false; 
} 

@Override 
public boolean onQueryTextChange(String newText) { 
    return false; 
} 
} 

오류

java.lang.NullPointerException: Attempt to invoke virtual method 'void android.support.v7.widget.SearchView.setIconifiedByDefault(boolean)' on a null object reference 
                         at com.android.parteek.contentprovider.Main2Activity.onCreateOptionsMenu(Main2Activity.java:147) 
+0

을 제거 할 수있다 (SearchView) ... '올바른 그림을 찾으십시오 –

답변

0

에 SearchView를 넣어 활동에서 제거합니다. searchmenu.xml에 추가하십시오.

귀하의 오류가 여기에이 라인에 관련된, 그래서 당신은

getMenuInflater().inflate(R.menu.searchmenu,menu); 
searchView=(SearchView)menu.findItem(R.id.search).getActionView(); 
searchView.setIconifiedByDefault(true); 

팽창하고 그 xml 파일을 수정하고 효과적으로 당신은 searchView =`의 두 인스턴스가이 searchview

void views(){ 
    l=(ListView)findViewById(R.id.list); 
    // searchView=(SearchView)findViewById(R.id.serch); 

} 
+0

그래서 검색 메뉴에서 항목을 추가해야합니다. 검색 xml 파일에서 메뉴를 만들고 항목을 추가하십시오. – Parteekj