我有一个从ListActivity继承并使用AndroidAnnotations的活动.虽然.onListItemClick工作正常,但列表项的上下文菜单根本不会显示,甚至.onCreateContextMenu不会被调用,但是.onListItemClick在长时间点击列表项后会触发.这是我的代码:
@OptionsMenu(R.menu.places)
@EActivity(R.layout.places)
public class PlacesPicker extends ListActivity {
private static String[] DATA_SOURCE = { PlacesDB.PLACE_NAME, PlacesDB.PLACE_DESC };
private static int[] DATA_DESTINATION = { R.id.place_name, R.id.place_desc };
public static ListView lv;
@Bean
PlacesDB db;
Cursor cursor;
@AfterInject
public void init() {
cursor = db.getPlaces(null, null);
startManagingCursor(cursor);
SimpleCursorAdapter adapter = new SimpleCursorAdapter(this, R.layout.place_item, cursor, DATA_SOURCE, DATA_DESTINATION);
setListAdapter(adapter);
lv = getListView();
registerForContextMenu(lv);
}
@Override
public void onListItemClick(ListView l, View v, int position, long id) …Run Code Online (Sandbox Code Playgroud) 我在配置androidannotation时遇到了麻烦,刚刚下载了androidannotations-bundle-2.7.1.zip.
我有一个使用@EActivity注释的LoginActivity,在构建之后我得到以下错误:
The AndroidManifest.xml file contains the original component, and not the AndroidAnnotations generated component. Please register LoginActivity_ instead of LoginActivity
Run Code Online (Sandbox Code Playgroud)
Eclipse:3.7.2我附上了一些可能相关的图片.如果您还有其他需要,请告诉我.

那么这个版本有什么问题(真的很怀疑),或者我的配置错误(最有可能)?
谢谢!
PS我知道这个类似的问题,但我相信我把罐装好了.
我正在使用android-annotations进行示例项目并尝试学习它,但我想出了一个奇怪的事情.
假设我们有一个名为"@ + id/button"的简单按钮
现在我想为触摸和点击事件编写两种单独的方法.
@Touch
public void button(View v, MotionEvent event) {
if (event.getAction() == MotionEvent.ACTION_DOWN) {
v.setAlpha(0.5f);
} else if (event.getAction() == MotionEvent.ACTION_UP || event.getAction() == MotionEvent.ACTION_CANCEL) {
v.setAlpha(1f);
}
}
@Click
public void button() {
startActivity(new Intent(this, ExampleActivity.class));
finish();
}
Run Code Online (Sandbox Code Playgroud)
当我运行项目时,我看到触摸事件,但是点击事件永远不会被捕获.我错过了什么,可能是概念性的吗?
我正在尝试使用Robolectric库配置基本应用程序.我使用的是lattest版本(3.0)以及最新的AndroidAnnotations版本(3.3.2)和Gradle 1.4.0.
在遇到AndroidHttpClient异常等少数问题后,我设法完成了一项非常简单的测试.
现在我想用Activity进行进一步测试,但我无法进行测试.测试以某种方式挂起并且永不屈服(每次测试都是黄色旋转).
这似乎是因为@Before设置,因为它在评论时产生.但为什么我不能使用这个注释设置我的活动?特别是当我使用带注释的Activity(而不是生成的Activity_)时,它会产生,这不是使用AndroidAnnotations时测试的正确方法.
这是我的截断测试类仍然无法执行...:
@RunWith(RobolectricGradleTestRunner.class)
@Config(constants = BuildConfig.class, sdk = Build.VERSION_CODES.LOLLIPOP)
public class MapActivityTest {
private MapActivity_ mMapActivity;
@Before
public void setup() {
mMapActivity = Robolectric.buildActivity(MapActivity_.class).create().get();
}
@Test
public void checkActivityNotNull() throws Exception {
assertNotNull(mMapActivity);
}
}
Run Code Online (Sandbox Code Playgroud)
如果可能有任何帮助,我也在使用Java 1.8.
有谁知道什么可能导致这个问题?
谢谢!
更新:
在降级到Java 7并尝试相同结果后尝试.
我是初学Android开发人员(开发1.5年).
在此期间,我的主要研究来源是
www.developer.android.com和关于Udacity的谷歌培训.
最近我收到了一个重构项目,这个项目是由一位资深开发人员创建的,他深入使用了Android Annotations,在重构代码时我有点沮丧.因为这段代码看起来与我之前学到的很多不同.
然后我在一些项目中实现了Android Annotations,并惊讶于在处理REST服务,分离背景和UI任务等方面有多么方便.
所以问题是:
将@EActivity注释添加到班级后,我无法运行我的项目。
这是我的Gradle项目:
// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
repositories {
google()
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.3.2'
classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
allprojects {
repositories {
google()
jcenter()
}
}
task clean(type: Delete) {
delete rootProject.buildDir
}
Run Code Online (Sandbox Code Playgroud)
这是我的Gradle模块:app
apply plugin: 'com.android.application'
def AAVersion = '4.2.0'
android {
compileSdkVersion 28
defaultConfig {
applicationId "com.example.tasks" …Run Code Online (Sandbox Code Playgroud)