android: добавление кнопки в название приложения?
Можно ли добавить кнопку в правый угол заголовка приложения?
например, добавить кнопку "обновить" в заголовок "Feed: my feeds"?
http://www.android.com/market/apps/feedr-lg-01.jpg http://www.android.com/market/apps/feedr-lg-01.jpg
4 ответа
Самый простой способ сделать это, ИМХО, это избавиться от стандартной строки заголовка (android:theme="@android:style/Theme.NoTitleBar"
в <activity>
элемент в манифесте) и поместите свою собственную "строку заголовка" в верхней части упражнения.
Обратите внимание, что стиль "кнопка в строке заголовка" больше похож на iPhone. У Android обычно это есть в меню параметров, поэтому пользовательский интерфейс менее загроможден (за счет двух нажатий для обновления).
Да, это решило проблему, которую я имел... урезанная версия ниже...
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);
setContentView(R.layout.main);
getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, Set your layout for title here and mention your button in this layout);
final TextView myTitleText = (TextView) findViewById(R.id.myTitle);
if ( myTitleText != null ) {
/* your code here */
}
}
Почему бы тебе не попробовать это
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
final boolean customTitle= requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);
setContentView(R.layout.main);
if ( customTitle ) {
getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, Set your layout for title here and mention your button in this layout);
}
final TextView myTitleText = (TextView) findViewById(R.id.myTitle);
if ( myTitleText != null ) {
myTitleText.setText("NEW TITLE");
myTitleText.setBackgroundColor(Color.BLUE);
}
}
Я думаю, что лучшим подходом было бы просто обновить представление, если оно активно, с помощью обработчика. Если вы извлекаете контент при возобновлении активности, то в любой момент, когда вы уходите и возвращаетесь к просмотру, он обновляется. Если вы ожидаете, что пользователи будут находиться на верхнем уровне представления, и вам необходимо обновить информацию, то вы можете обработать это с помощью отложенного обработчика, который будет вызывать ваш метод возобновления и периодически обновлять представление, тем самым устраняя необходимость в кнопке.
Вот ссылка на документацию для класса обработчика. Я бы начал с изучения основного использования обработчика. Затем протестируйте метод sendMessageDelayed, чтобы в конце каждого вызова вы перезапускали обработчик. Также убедитесь, что вы создали новый обработчик только в том случае, если ваша деятельность является основной, и не беспокойтесь об обновлении пользовательского интерфейса, если это не так. Добавление простого флага isActive во время паузы и возобновления - хороший способ проверить это.