我正在使用最新版本的IntelliJ IDEA(13.1.4),我正在开发自己的自定义注释.
我目前在我的项目中有两个模块
我在Eclipse工作,但我正在尝试迁移IntelliJ,因为我无法忍受Eclipse.我设法通过让Ant构建生成主项目的.jar文件并且Test类将使用此.jar来使它在Eclipse中有点工作.
但是我不能让它在IntelliJ上工作.
在Settings -> Compiler -> Annotation Processor我有一个新的配置文件中,测试项目在此配置文件中,配置文件如下:

我也尝试过更改Processor Path输出文件夹(其中有类META-INF),但没有运气.该generated文件夹由IDE创建,但它找不到任何处理器.
关于如何在这里进行的任何提示?
在我的 Android 项目中,我希望softInputMode只有一个片段是adjustPan.
将以下行添加到我的清单(在活动内)按预期工作:
android:windowSoftInputMode="adjustPan"
Run Code Online (Sandbox Code Playgroud)
但是我片段中的以下几行什么都不做:
@Override
public void onResume() {
super.onResume();
getActivity().getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN);
}
@Override
public void onPause() {
super.onPause();
getActivity().getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_UNSPECIFIED);
}
Run Code Online (Sandbox Code Playgroud)
任何想法为什么会这样以及可以做些什么来解决?
回到历史
我有这个aar开发人员可以正常使用的android库
compile 'com.companyname.sdk:android-sdk:2.x'
Run Code Online (Sandbox Code Playgroud)
现在我们正在从头开始重新编写库来创建V3.
在这次重新组织中,我们设法将lib分解为模块.所以可以说在V3上我们会有以下工件
compile 'com.companyname.sdk:core:3.x'
compile 'com.companyname.sdk:extra_1:3.x'
compile 'com.companyname.sdk:extra_2:3.x'
compile 'com.companyname.sdk:extra_ ....
Run Code Online (Sandbox Code Playgroud)
这将在gradle结构上给出以下模块:
root:
|- test_app (apk just for testing, not deployed anywhere)
|- sdk (aka: core)
|- extra_1
|- extra_2
|- extra_ ... etc
Run Code Online (Sandbox Code Playgroud)
每个extra在他们的模块build.gradle有一个provided (':sdk'),这样可以使用一切从sdk模块,但不实际编译它自己内部.
但我还想为现有的主机应用程序提供一个简单的迁移路径.意思是,我想在V3上也有以下的神器组合core和extra_1(它基本上是V2上的当前内容).
compile 'com.companyname.sdk:android-sdk:3.0.0'
Run Code Online (Sandbox Code Playgroud)
这一切听起来都很理论,但是我很难把它想象成一个gradle结构,让我轻松导出所有这些.
我想要实现的目标
所以我希望能够在构建期间生成以下工件:
android-sdk包括core和extra_1coreextra_1我试过了什么
添加一个名为的额外模块legacy,com.android.library无需任何代码即可应用,并compile project为其他模块添加.它会生成一个空的aar
使用两个模块中的sourceSets添加核心/旧版buildTypes.从未生成2aar …
在我的项目GraphQL模式上,对象AllowedPeriod(只有两个字段startsAt / endsAt)可以到达图形的不同对象内。
生成查询时,apollo会为每个查询创建一个新类型 <parent_object>.AllowedPeriod
例如,在GetDevicesQuery中,AllowedPeriod可以是内部devices,actions或者group,因此产生以下的类。
GetDevicesQuery.AllowedPeriodGetDevicesQuery.AllowedPeriod1GetDevicesQuery.AllowedPeriod2有没有办法告诉阿波罗这些类型是相同的类型,并且不应该为每个类型生成类型?
我有一个DialogFragment应该是简单的,但它给了我一些特别关于果冻豆的大问题.
该应用程序使用网络,它弹出一个对话框,要求用户打开WiFi或取消然后关闭它.因此它扩展DialogFragment并创建视图:
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
AlertDialog a = new AlertDialog.Builder(getActivity()).setCancelable(true).setTitle(R.string.dialog_title_disabled)
.setMessage(R.string.dialog_text)
.setPositiveButton(android.R.string.yes, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
dismiss();
Intent i = new Intent(Settings.ACTION_WIRELESS_SETTINGS);
i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(i);
}
}).setNegativeButton(android.R.string.no, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
getActivity().finish();
}
}).create();
//a.setCanceledOnTouchOutside(false);
return a;
}
Run Code Online (Sandbox Code Playgroud)
如果用户单击"是",则会取消对话框并打开"无线设置"活动.或者,如果用户单击"取消",它只会关闭我的整个活动,但是在Jelly Bean上,只要我单击"是",它就会打开"设置",但应用程序强制将关闭并显示以下错误:
08-05 20:24:22.584: E/AndroidRuntime(2579): java.lang.IllegalStateException: Failure saving state: active SettingsDialogFragment{425dd550} has cleared index: -1
08-05 20:24:22.584: E/AndroidRuntime(2579): at android.app.FragmentManagerImpl.saveAllState(FragmentManager.java:1653)
Run Code Online (Sandbox Code Playgroud)
还有一些额外的日志记录显示了我布局中每个片段的已保存状态,而应该是的数字2 SettingsDialogFragment只是null …
在我们的应用程序中,有一个服务通常在Application.OnCreate(直接调用context.startService)期间启动,稍后通过AlarmManager(正在进行重构以将其某些工作迁移到 JobScheduler)。
我们的应用程序也有一个BroadcastReceiver以其直接意图启动的。
鉴于 Android Oreo ( https://developer.android.com/about/versions/oreo/android-8.0-changes.html ) 中的新限制,我们遇到了如下问题:
这会导致“IllegalStateException: Not allowed to start service Intent”崩溃。
我知道 CommonsWare 在此处/sf/answers/3115400361/所回答的启动服务的新推荐方法,但对于这种特定情况,我只想将if(process in foreground) { startService }. 我目前正在使用以下方法,它似乎有效:
@TargetApi(Build.VERSION_CODES.LOLLIPOP)
private static boolean isProcessInForeground_V21(Context context) {
ActivityManager am = (ActivityManager) context.getSystemService(ACTIVITY_SERVICE);
List<ActivityManager.AppTask> tasks = am.getAppTasks();
return tasks.size() > 0;
}
Run Code Online (Sandbox Code Playgroud)
但我找不到 Android Oreo 正在做的确切检查(我到这里为止https://android.googlesource.com/platform/frameworks/base/+/master/core/java/android/app/ContextImpl.startServiceCommon方法上的java,但从那里requireForeground标志似乎转到了一些本机实现)
所以我的问题: …
我的适配器上有一个有点奇怪的错误.适配器正在创建的视图是左侧的缩略图和带有几行的表.每行有两个textview.
其中一个textview具有android:autoLink="web"属性集,listview上有一个onItemClickListener.
问题是,每当TextView自动链接它的内容时,下次转换其父视图时,它就不再从onItemClickListener接收点击.
让我用一个例子来澄清:
textview的自动链接功能肯定会改变我的布局,但我不知道是什么.在我的适配器上每次调用getView时都必须重置一个属性,但是哪个?
谢谢你的帮助.
编辑
让我们看一些代码,这是非常标准/良好的做法.来自我的适配器的getView是:@Override public View getView(int position,View convertView,ViewGroup parent){
// Inflate a new layout if needed
if (convertView == null)
convertView = createNewView();
// Gets the item from my array
AGplus item = (AGplus) getItem(position);
// Gets the holder pointing to the views
Holder h = (Holder) convertView.getTag();
// That's a test version, I won't be using date.toString() later on
h.date.setText(new Date(item.getDate()).toString());
// This guys is giving …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用TransitionDrawable在操作栏上执行一些颜色动画.
我正在尝试的代码非常简单,在onCreate期间,我将过渡drawable作为actionbar背景:
Drawable d = getResources().getDrawable(R.drawable.actionbar);
actionbarDrawable = new TransitionDrawable(new Drawable[] { d, d });
getActionBar().setBackgroundDrawable(actionbarDrawable);
Run Code Online (Sandbox Code Playgroud)
然后在事件上我替换了TransitionDrawable的第二个drawable并要求为它设置动画.
actionbarDrawable.setDrawableByLayerId(1, d);
actionbarDrawable.startTransition(666);
Run Code Online (Sandbox Code Playgroud)
我在我的活动上的RelativeLayout上尝试了相同的代码,它似乎工作正常,为什么ActionBar不想合作的任何想法以及如何使其工作?
谢谢.
android android-animation android-actionbar transitiondrawable
我有点kotlin新手,我正在尝试删除回调本身内部的回调实例.
我正在尝试实现它的东西类似于以下代码.
private val myCallback = SomeInterfaceType {
if(it.something) {
someObject.removeListener(this@SomeInterfaceType)
}
}
Run Code Online (Sandbox Code Playgroud)
当然它不会编译,否则我不会在这里问.所以我问,如何从界面实例中删除回调?
编辑: 错误是"推断类型是X但Y是预期的.
编辑2:我刚刚意识到我问过错误的问题,它与它类似但不完全是一个接口.
我正在使用的对象具有以下构造函数/接口
public open class Watcher<T> public constructor(call: (T) -> kotlin.Unit)
所以实际上我试图从里面引用Watcher call: (T) -> kotlin.Unit来移除听众.
那可能吗?
adapter.notifyDataSetChanged(); 我没有在android中工作我正在检索for循环中的值,但值没有显示在屏幕上.我的java文件:
private static final String TAG_NAME="Notification";
String[] resultsAsString = {""};
ListView listView;
ArrayAdapter<String> adapter;
adapter = new ArrayAdapter<String>(this,
android.R.layout.simple_list_item_1, resultsAsString);
ParseQuery<ParseObject> parseObjectParseQuery=new ParseQuery<ParseObject>("PushNotifications");
parseObjectParseQuery.findInBackground(new FindCallback<ParseObject>() {
@Override
public void done(List<ParseObject> objects, ParseException e) {
if (e==null){
resultsAsString = new String[objects.size()];
Log.d(TAG_NAME,"Objects size in MyService is:"+objects.size());
if(objects.size()>0){
Log.d(TAG_NAME,"Object size is "+objects.size());
for(int index = 0; index < objects.size(); index++){
resultsAsString[index] = objects.get(index).getString("Message");
Log.d(TAG_NAME,"result value is:"+resultsAsString[index]);
}
adapter.notifyDataSetChanged();
}else {
Log.d(TAG_NAME,"Object size is "+objects.size());
}
}
}
});
listView = (ListView) …Run Code Online (Sandbox Code Playgroud)