Manny265
Manny265

Reputation: 1709

ActionBarCompat can't find methods from the superclass

I'm following a tutorial on ActionBarCompat that also enables a search text area. I extended the ActionBarActivity from the v7 support lib. When I try to override these two methods it can't find them in the superclass. I went to source and looked at the superclass' methods and I can't locate them there as well. The two methods are onQueryTextSubmit and onQueryTextChange This was the tutorial.

Any idea what I am doing wrong?

This is the error when I hover over the methods:

The method onQueryTextChange(String) of type MainActivity must override or implement a supertype method

public class MainActivity extends ActionBarActivity{
private SearchView mSearchView;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    try {
        ViewConfiguration config = ViewConfiguration.get(this);
        Field menuKeyField = ViewConfiguration.class.getDeclaredField("sHasPermanentMenuKey");
        if(menuKeyField != null) {
            menuKeyField.setAccessible(true);
            menuKeyField.setBoolean(config, false);
        }
    } catch (Exception ex) {
        // Ignore
    }

}

@Override
public boolean onQueryTextSubmit(String s) {
    Toast.makeText(this, s, Toast.LENGTH_LONG).show();
    return true;
}

@Override
public boolean onQueryTextChange(String s) {
    return false;
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.main, menu);

    MenuItem searchItem=menu.findItem(R.id.action_search);
    mSearchView = (SearchView) MenuItemCompat.getActionView(searchItem);
    return true;
}


@Override
public boolean onOptionsItemSelected(MenuItem item) {
    switch(item.getItemId()){

    case R.id.action_search:
        mSearchView.setIconified(false);
        return true;

    }

    return false;
}

Upvotes: 0

Views: 155

Answers (1)

Anderman
Anderman

Reputation: 134

It sounds like you are not implementing the class that is needed for those methods.

public class MainActivity extends ActionBarActivity implements SearchView.OnQueryTextListener

Make sure that you implemented SearchView.OnQueryTextListener.

Upvotes: 3

Related Questions