Изменить строку по щелчку меню - PullRequest
0 голосов
/ 03 мая 2019

У меня есть Constant.java в моем проекте студии Android.И у меня есть меню для моего приложения.Я хочу изменить строки с помощью пунктов меню.Как я могу это сделать?

Вот мой файл constant.java.

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";
}

А вот мой файл box_menu.xml

<?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>

Теперь, например, когдая нажимаю на пункт меню с android:id="@+id/menu_go_category" id, я хочу изменить строку с именем на Constant.java с public static final String CATEGORY_URL = SERVER_URL+"api.php?cat_list"; на public static final String CATEGORY_URL = SERVER_URL+"api.php?menu_go_category (or anything else)

Как я могу это сделать?

Примечание: Моя константаФайлы .java и box_menu.xml находятся в разных пакетах

1 Ответ

1 голос
/ 03 мая 2019

Попробуй это.

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