user3692622
user3692622

Reputation:

Android: give the settings page functionality

In my app, I have an icon in the action bar. When I click on it, I get an option called Settings. However, when I click on this option, nothing happens. I have searched, but I can't find out how to utilize this option. I would like for a dialog box to open when Settingsclicked (or if another Activity opened that would be cool too), which I could then add content to. Does anyone know how I would go about this?

Upvotes: 0

Views: 38

Answers (2)

michaelcarrano
michaelcarrano

Reputation: 1316

The solution Dave S provided works but I want to share another way you can handle this functionality.

In your Activity you can have the following code to interact with your menu:

@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);
    return true;
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    // Handle action bar item clicks here. The action bar will
    // automatically handle clicks on the Home/Up button, so long
    // as you specify a parent activity in AndroidManifest.xml.
    int id = item.getItemId();
    if (id == R.id.action_settings) {
        displaySettingsDialog();
    }
    return super.onOptionsItemSelected(item);
}

The key is to make sure you are checking for the right ID you assigned to your menu item.

If you wanted to launch a new activity (SettingsActivity) then you can replace the displaySettingsDialog() function with the following:

Intent intent = new Intent(this, SettingsActivity.class)
startActivity(intent);

Upvotes: 1

Dave S
Dave S

Reputation: 3468

Look for main.xml in your res/menu/ folder. (at least for eclipse ADT) There you can specify an onClick attribute which will call a function in your code. from there you can do whatever you want with it.

EDIT

<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
tools:context=".MainActivity" >
<item
    android:id="@+id/fb_login"
    android:orderInCategory="100"
    android:showAsAction="never"
    android:title="@string/facebook_login_label"
    android:onClick="showFacebookDialog"/>
</menu>

This would define the item for my MainActivity, inside which you define the onClick like so

public void showFacebookDialog(final MenuItem item)
{
    ...
}

Upvotes: 1

Related Questions