- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
如何将自定义操作栏布局与 AndroidAnnotations 结合使用?
有效的代码:
@EActivity(R.layout.activity_register_classes)
public class RegisterClassesActivity extends ActionBarActivity {
@AfterViews
void setupActionBar() {
ActionBar actionBar = getSupportActionBar();
actionBar.setDisplayShowCustomEnabled(true);
actionBar.setDisplayShowHomeEnabled(false);
actionBar.setDisplayShowTitleEnabled(false);
actionBar.setCustomView(R.layout.fragment_save_cancel_action_bar);
findViewById(R.id.id_cancel).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(getBaseContext(), "Cancelando...", Toast.LENGTH_SHORT).show();
}
});
}
}
但是下面的代码 fragment 却没有:
@EActivity(R.layout.activity_register_classes)
public class RegisterClassesActivity extends ActionBarActivity {
@AfterViews
void setupActionBar() {
ActionBar actionBar = getSupportActionBar();
actionBar.setDisplayShowCustomEnabled(true);
actionBar.setDisplayShowHomeEnabled(false);
actionBar.setDisplayShowTitleEnabled(false);
actionBar.setCustomView(R.layout.fragment_save_cancel_action_bar);
}
@Click(R.id.id_save)
void cancel() {
Toast.makeText(getBaseContext(), "Cancel...", Toast.LENGTH_SHORT).show();
}
}
我正在使用该库的版本 3.0.1。Android API 19
最佳答案
我看到这个问题已经有一段时间了,我希望现在对您有所帮助。所以我也遇到了这个问题,因为Android注释文档非常差。实际上我必须解决这个问题两次,因为我的第一个解决方案在第一次点击时不起作用,我将在代码中解释这一点。
1.- 首先是创建一个菜单,您必须在 res/menu 中执行此操作,将其命名为“myactivity_menu.xml”,它应该看起来像这样(在创建时默认情况下应该创建它) Activity ):
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools" tools:context=".MyActivity">
<item android:id="@+id/thisIsAnId"
android:icon="@drawable/your_drawable"
android:title="@string/your_string"
app:showAsAction="always"/> />
</menu>
这段代码中重要的是给它一个id(你会需要它),如果你想要一个好看的图标,请将图标像任何其他 Assets 一样上传到你的可绘制文件夹(不确定,但我认为字符串是可选的)。
2.- 现在转到您的 Activity 并使用 AndroidAnnotations 调用菜单,如下所示:
@EActivity(R.layout.my_activity)
@OptionsMenu(R.menu.myactivity_menu)
是不是很简单,只需在 @EActivity 下添加 @OptionsMenu 即可,您的菜单现在应该可见。
然而,这是一个重要的观点,那么我如何使用菜单中的按钮或图标执行某些操作?这是一个非常好的问题,因为 AndroidAnnotations 文档对此并不清楚,示例非常差,可能会让您感到困惑。所以这就是我们要做的:
3.- 在这里我们将为菜单项设置一个查找器:
@OptionsItem(R.id.thisIsAnId)
void whatEverToDoWithMyMenuItem() {
}
下面需要有一个 void 方法,我认为这是 AndroidAnnotations 文档中唯一正确的指示。
此代码可以放在@AfterViews下。
但是,这仍然不清楚,导致 AndroidAnnotation 更改从 onItem 派生的 Android 逻辑...那么如果我必须设置监听器会发生什么?
我的错误是在我们刚刚创建的 void 方法中使用了正常的 Android 逻辑。那不会很好地工作。
4.- 所以在这一点上最困难的是我们必须简单地添加我们想要做的任何事情,因为我们已经有了监听器:
@OptionsItem(R.id.thisIsAnId)
void whatEverToDoWithMyMenuItem() {
Toast toast = Toast.makeText(getApplicationContext(), "Sample Text",
Toast.LENGTH_LONG);
toast.show();
}
这里的技巧是,当我们执行@OptionsItem(R.id.thisIsAnId)
时,点击监听器就已经设置好了,所以我们可以在下面的 void 方法中做任何我们想做的事情。
如果由于某种原因您在 voide 方法中使用警报并收到错误,请参阅此问题,我的问题已通过使用 this
修复
如果 AndroidAnnotations 的任何人正在阅读本文,请改进您的文档。
关于java - 如何将自定义操作栏布局与 AndroidAnnotations 结合使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24789623/
我正在尝试从 AndroidAnnotations 3.3.2 升级到版本 4.0.0,但在升级后让 ORMLite 工作时遇到问题。升级到 4.0.0 并构建项目后,我收到错误消息:“错误:找不到符
我想将我的应用程序的某些部分提取到库中,但 AndroidAnnotations 不允许我 ;-) 如果我有: App - uses AndroidAnnotations - uses
我在 Android Studio gradle 项目中使用 AndroidAnnotations。我目前在编译期间从 AA 得到错误输出: cannot find symbol class MyAc
我有一个扩展父 fragment (NavMenu) 的 fragment (NavMenuStats)。 这个父 fragment 重写 onCreateView 方法,如下所示: @Nullabl
我在我的应用程序中使用 AndroidAnnotations,当我尝试将额外内容放入 Intent 并启动一个使用 AndroidAnnotations 的 Activity 时,我总是会收到运行时错
我用这个expandable recycler view库和 Android 注释。并尝试使用@NonConfigurationInstance注释。在 ItemViewHolder 类构造函数中,我
我在库中有一个带注释的 Activity,它是同一库中 EventBus 事件的订阅者。它看起来像这样,大大简化了: @EActivity(resName = "activity_foo") publ
我正在使用 Android Annotations RestService 进行 API 调用。唯一的问题是我收到了一个 JSON,但我不知道如何查看该 JSON 字符串。有没有一种方法可以查看响应数
所以我想尝试新的 Android Studio 并导入我的 eclipse 项目(我生成了一个 gradle 构建文件)。效果不错。 似乎唯一不起作用的库是 AndroidAnnotations。我在
如何将自定义操作栏布局与 AndroidAnnotations 结合使用? 有效的代码: @EActivity(R.layout.activity_register_classes) public c
我正在使用 AndroidAnnotation 开发 Android 应用程序。 应用程序对我的远程 API 进行 REST 调用。所以我设置了 AA 和我的 REST 客户端。但我想编写通用代码来处
我正在尝试使用 AndroidAnnotations 的 RestClient,但是当我调用客户端中的方法之一时,出现以下错误: 04-10 10:07:23.624 7528-7528/eu.
我有一个用 @Rest 注释的类,我在另一个实例中使用它的方法,用 @RestService 注释。当我调用 Rest 客户端类的某些方法时,出现 NetworkOnMainThreadExcepti
我有一个 Android 应用程序,我想下载一个大文件。 REST API 实现是通过 AndroidAnnotations 实现的。我需要使用此 REST 客户端(由 AndroidAnnotati
我正在尝试使用 AndroidAnnotations 创建一个简单的学习项目,它将与 REST 调用一起使用。我已经按照这个教程 https://github.com/androidannotatio
我有一个继承自 ListActivity 并使用 AndroidAnnotations 的 Activity 。虽然 .onListItemClick 工作正常,但列表项的上下文菜单根本没有出现,甚至
当RoboGuice触发事件时,我的事件回调会在哪里执行,在哪个线程?例如,我有一个具有 do(@Observes OnUpdateUiEvent e) 的 Activity 。我还有一个触发新 On
好的。 我正在尝试创建一个可以通过使用 maven 且仅使用 maven 来完美构建的项目。 目前,只要在实际 Java 代码中没有引用,我就面临着正在生成类并且工作正常的问题。 意思是,如果我在 d
我正在阅读有关依赖注入(inject)的文章,发现了 2 个引起我注意的库,AndroidAnnotations 和 Dagger 2。我看到的是 AA 具有很多功能,包括 DI,但是大多数开发人员都
我在使用 AndroidAnnotations 构建 Activity 时遇到了一些麻烦。我有一个名为 TemplateActivity 的父 Activity : @EActivity(R.layo
我是一名优秀的程序员,十分优秀!