2014-02-04 6 views
2

Это, наверное, очень простой вопрос для ответа, но на данный момент я не могу его сортировать.Невозможно форматировать панель действий. Название

У меня есть действие настроить следующим образом:

// get action bar 
ActionBar actionBar = getSupportActionBar(); 

// set up the action bar layout 
final ViewGroup actionBarLayout = (ViewGroup) getLayoutInflater().inflate(R.layout.actionbar_layout,null); 

// apply layout 
actionBar.setCustomView(actionBarLayout); 

Я попытался установить название действия бар следующим образом:

// setting action bar title 
    actionBar.setTitle(getResources().getString(R.string.testing_title)); 

Это относится название правильно, проблема testing_title отформатирован в файле строк следующим образом:

<string name = "testing_title"><b>Testing</b>Testing</string> 

Итак, первое «тестирование» должно быть жирным и вторым нормальным. Проблема в том, что они не ободряют. Кто-нибудь знает, что мне здесь делать?

В моей панели действий пользовательского макета у меня был вид текста, который я использовал для отображения названия и нашел ответ на здесь, похожее на это:

private void setActionBarTitle(String title, ActionBar ab) 
    { 
     View v = ab.getCustomView(); 
     TextView titleTxtView = (TextView) v.findViewById(R.id.actionBarTitle); 
     titleTxtView.setText(title); 
    } 

Я тогда назвал это так:

setActionBarTitle(getResources().getString(R.string.audioWalks_title), actionBar); 

Это, однако, не дало никаких результатов. Если бы кто-нибудь мог помочь, я был бы признателен.

+0

Мое первое предположение - но только предположение - заключается в том, что строка интерпретируется как строка. Но если вы посмотрите на [этот ответ здесь] (http://stackoverflow.com/a/1533512/1798304), вам нужно использовать 'Html.fromHtml (String)'. Таким образом, расшифровка вашей строки и ее подача в 'fromHtml' может работать. – MalaKa

+0

привет спасибо за ваш быстрый ответ, проблема в том, что я хочу сохранить все свои строки в файле string.xml и не создавать случайные строки в разных классах. Когда я устанавливаю текст в текстовое представление в файле макета панели действий и устанавливаю его в @string/..., он сохраняет форматирование. –

ответ

1

Ошибка должна быть здесь

// setting action bar title 
actionBar.setTitle(getResources().getString(R.string.testing_title)); 

java.lang.String не может содержать пролеты. Попробуйте получить ссылку CharSequence.

actionBar.setTitle(getResources().getText(R.string.testing_title)); 
+0

Bingo !! Спасибо @Doctoror Drive –

0

Try с этим:

private void setActionBarTitle(String title, ActionBar ab) 
    { 
     View v = ab.getCustomView(); 
     TextView titleTxtView = (TextView) v.findViewById(R.id.actionBarTitle); 
     titleTxtView.setTypeface(null, Typeface.BOLD); 
     titleTxtView.setText(title); 
    } 
+0

Этот метод не работал для меня, он просто отображал метку приложения по умолчанию на панели действий. Кроме того, у меня есть титулы с некоторыми названиями. Например, Great of China Это будет варьироваться от активности/фрагмента к активности/фрагменту –

1

Как я и предложил в комментарии, я бы рекомендовал использовать метод Html.fromHtml(String). Вы все еще можете сохранить строки в ваш ресурс, поэтому я сказал расшифровывает;)

Так что я нашел что-то очень interessting для вас на android-developers. Если вы не используете отформатированные номера, вам просто нужно это сделать:

private void setActionBarTitle(String title, ActionBar ab) 
{ 
    View v = ab.getCustomView(); 
    TextView titleTxtView = (TextView) v.findViewById(R.id.actionBarTitle); 
    titleTxtView.setText(Html.fromHtml(title)); 
} 
Смежные вопросы