是否可以在应用标题的右上角添加一个按钮?
例如,在“Feed:my feeds”标题中添加“刷新”按钮?http://www.android.com/market/apps/feedr-lg-01.jpg alt text http://www.android.com/market/apps/feedr-lg-01.jpg
答案 0 :(得分:16)
最简单的方法是恕我直言,摆脱清单中android:theme="@android:style/Theme.NoTitleBar"
元素中的标准标题栏(<activity>
)并将自己的“标题栏”放在顶部活动。
请注意,“标题栏中的按钮”样式更像是iPhone-ish。 Android通常会在选项菜单中使用它,因此UI不会混乱(以两次点击为代价进行刷新)。
答案 1 :(得分:3)
你为什么不试试这个
@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);
}
}
答案 2 :(得分:3)
是的,这解决了我的问题...修剪版本低于......
@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 */
}
}
答案 3 :(得分:1)
我认为更好的方法是只使用Handler刷新视图是否处于活动状态。如果您在活动恢复时拉动内容,那么无论何时离开并返回视图,它都会刷新。如果您希望用户坐在视图的顶层并需要更新信息,那么您可以使用延迟处理程序处理此问题,该处理程序将调用您的resume方法并定期刷新视图,从而无需按钮。
Here是处理程序类文档的链接。我将首先研究处理程序的基本用法。然后测试sendMessageDelayed方法,以便在每次调用结束时重新启动处理程序。另外,如果您的活动是最活跃的,请确保只创建一个新的处理程序,如果不是,则不要打扰刷新ui。在暂停和恢复时添加一个简单的isActive标志是检查这一点的好方法。