I need to use this code for android lollipop but if I extend ActionBarActivity, it does not recognize it and it changes it to ActionBar. How can I do this same SearchView for lollipop? If I try to extend from AppCompatActivity (which I saw is the one that replaces ActionBarActivity), the same thing happens to me. Just started with Android.
import android.os.Bundle; import android.support.v4.view.MenuItemCompat;
import android.support.v4.view.MenuItemCompat.OnActionExpandListener;
import android.support.v7.app.ActionBar;
import android.support.v7.app.ActionBarActivity;
import android.support.v7.widget.SearchView;
import android.support.v7.widget.SearchView.OnQueryTextListener;
import android.view.Menu; import android.view.MenuItem;
import android.widget.TextView; import android.widget.Toast;
public class MyActivity extends ActionBarActivity implements OnQueryTextListener, OnActionExpandListener { private TextView texto;
@Override protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_my);
texto = (TextView) findViewById(R.id.texto);
}
@Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu;
this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.my, menu);
MenuItem searchItem = menu.findItem(R.id.menu3_buscar);
SearchView searchView = (SearchView) MenuItemCompat.getActionView(searchItem); searchView.setOnQueryTextListener(this); MenuItemCompat.setOnActionExpandListener(searchItem, this);
return super.onCreateOptionsMenu(menu);
} /* @Override public boolean onOptionsItemSelected(MenuItem item) { int id = item.getItemId();
if (id == R.id.action_settings) { return true;
} return super.onOptionsItemSelected(item);
}*/
@Override public boolean onMenuItemActionExpand(MenuItem item) {
Toast.makeText(getApplicationContext(), "EXPAND", Toast.LENGTH_SHORT).show(); return true;
}
@Override public boolean onMenuItemActionCollapse(MenuItem item) { Toast.makeText(getApplicationContext(), "COLLAPSE", Toast.LENGTH_SHORT).show();
return true;
} @Override public boolean onQueryTextSubmit(String s) { texto.setText("Texto a buscar\n\n" + s); return false;
} @Override public boolean onQueryTextChange(String s) { texto.setText("Escribiendo texto...\n\n" + s);
return false; } }