Ahmet Özcan
Ahmet Özcan

Reputation: 47

Change String by Menu Click

I have Constant.java in my android studio project. And i have a menu for my application. i want change strings with menu item clicks. How can i do this?

Here is my constant.java file.

public class Constant implements Serializable{

    /**
     *
     */


    private static final long serialVersionUID = 1L;

    //server url
    public static final String SERVER_URL= BuildConfig.server_url;


    public static final String IMAGE_PATH_URL =SERVER_URL+"images/";

    public static final String CATEGORY_URL = SERVER_URL+"api.php?cat_list";
}

And here is my drawer_menu.xml file

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">

    <group android:checkableBehavior="single">

        <item
            android:id="@+id/menu_go_home"
            android:checked="true"
            android:icon="@drawable/ic_d_home"
            android:title="@string/menu_home" />

        <item
            android:id="@+id/menu_go_category"
            android:checked="false"
            android:icon="@drawable/ic_d_category"
            android:title="@string/menu_category" />
        <item
            android:id="@+id/menu_go_diziler"
            android:checked="false"
            android:icon="@drawable/ic_d_category"
            android:title="Diziler" />

        <item
            android:id="@+id/menu_go_latest"
            android:checked="false"
            android:icon="@drawable/ic_d_latest"
            android:title="@string/menu_latest" />

        <item
            android:id="@+id/menu_go_all"
            android:checked="false"
            android:icon="@drawable/ic_d_video"
            android:title="@string/menu_all" />

        <item
            android:id="@+id/menu_go_favourite"
            android:checked="false"
            android:icon="@drawable/ic_d_favorite"
            android:title="@string/menu_favorite" />

        <item
            android:id="@+id/menu_go_rate"
            android:checkable="false"
            android:icon="@drawable/ic_d_rate"
            android:title="@string/menu_rate" />

        <item
            android:id="@+id/menu_go_share"
            android:checkable="false"
            android:icon="@drawable/ic_d_share"
            android:title="@string/menu_share" />
        <item
            android:id="@+id/menu_go_more"
            android:checkable="false"
            android:icon="@drawable/ic_d_more"
            android:title="@string/menu_more" />

        <item
            android:id="@+id/menu_go_about"
            android:checked="false"
            android:icon="@drawable/ic_d_about"
            android:title="@string/menu_about" />

        <item
            android:id="@+id/menu_go_privacy"
            android:checked="false"
            android:icon="@drawable/ic_d_privacy"
            android:title="@string/menu_privacy" />



    </group>
</menu>

Now for example when i click on menu item withandroid:id="@+id/menu_go_category" id, i want change string named on Constant.java with public static final String CATEGORY_URL = SERVER_URL+"api.php?cat_list"; to public static final String CATEGORY_URL = SERVER_URL+"api.php?menu_go_category (or anything else)

How can i do this?

Note: My Constant.java file and drawer_menu.xml files are at diffrent packages

Upvotes: 0

Views: 223

Answers (1)

elbert rivas
elbert rivas

Reputation: 1464

Try this.

@Override
public boolean onCreateOptionsMenu(Menu menu) {
  MenuInflater inflater = getMenuInflater();
  inflater.inflate(R.menu.drawer_menu, menu);
  return true;
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
  // Handle item selection
  switch (item.getItemId()) {
      case R.id.menu_go_home:
          String itemTitle = item.getTitle();
          Constant.CATEGORY_URL = SERVER_URL+"api.php? + itemTitle;
          return true; 
       default:
          return super.onOptionsItemSelected(item);
  }
}

Upvotes: 1

Related Questions