изменить шрифт textview через пункт меню onclick - PullRequest
0 голосов
/ 12 декабря 2018

Я хочу изменить тип шрифта textview, когда я нажимаю на соответствующий пункт в подпункте меню.У меня есть варианты шрифтов Kadwa, Vollkorn и Default, который является droid sans.Я был в состоянии показать тост на клике.Я новичок в Android Studio, ниже приведен мой код, и я прикрепил скриншот ниже.Не знаю, что делать дальше.Спасибо за вашу помощь. Изображение

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    MenuInflater inflater = getMenuInflater();
    inflater.inflate(R.menu.menu_text, 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();

    //noinspection SimplifiableIfStatement

    if (id == R.id.item2) {
        Toast.makeText(this, "Night mode", Toast.LENGTH_LONG).show();
        return true;
    }

    if (id == R.id.item3) {
        Toast.makeText(this, "Fonts", Toast.LENGTH_LONG).show();
        return true;
    }

    if (id == R.id.font1) {

        Toast.makeText(this, "Font 1", Toast.LENGTH_LONG).show();
        return true;
    }

    if (id == R.id.font2) {
        Toast.makeText(this, "Font 2", Toast.LENGTH_LONG).show();
        return true;
    }

    if (id == R.id.font3) {
        Toast.makeText(this, "Font 3", Toast.LENGTH_LONG).show();
        return true;
    }


    return super.onOptionsItemSelected(item);
}

Меню xml

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

<item android:title="@string/settings"
    app:showAsAction="always">

    <menu>

        <item android:id="@+id/item2"
            android:title="@string/night_mode"
            android:icon="@drawable/ic_night"
            app:showAsAction="withText" />

        <item android:id="@+id/item3"
            android:title="@string/font"
            app:showAsAction="never" >

            <menu>

                <item android:id="@+id/font1"
                    android:title="Kadwa"/>

                <item android:id="@+id/font2"
                    android:title="Vollkorn"/>

                <item android:id="@+id/font3"
                    android:title="Default"/>

            </menu>

        </item>


    </menu>


</item>

Ответы [ 2 ]

0 голосов
/ 12 декабря 2018
//create font using font from asset

Typeface font = Typeface.createFromAsset(
getContext().getAssets(), 
"fonts/androidnation.ttf");

textview.setTypeface(font);
0 голосов
/ 12 декабря 2018

Использовать setTypeFace метод на TextView .

Вы можете получить шрифт / шрифт:

ResourcesCompat.getFont(this, R.font.fontnamehere)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...