我正在尝试在IntelliJ中使用新的android gradle插件,但我似乎无法使用新的gradle插件构建我的项目.
我修改了应用程序的build.gradle文件中的依赖项"classpath 'com.android.tools.build:gradle:0.14.+'"
,我已将gradle更新为2.1,并且我已更新了我的模块中的build.gradle文件.
我一直在IntelliJ日志中收到此错误:
2014-11-03 16:40:12,864 [ 937413] ERROR - vice.AndroidProjectDataService - IntelliJ IDEA 13.1.5 Build #IU-135.1289
2014-11-03 16:40:12,864 [ 937413] ERROR - vice.AndroidProjectDataService - JDK: 1.8.0_05
2014-11-03 16:40:12,864 [ 937413] ERROR - vice.AndroidProjectDataService - VM: Java HotSpot(TM) 64-Bit Server VM
2014-11-03 16:40:12,864 [ 937413] ERROR - vice.AndroidProjectDataService - Vendor: Oracle Corporation
2014-11-03 16:40:12,864 [ 937413] ERROR - vice.AndroidProjectDataService - OS: Windows 8
2014-11-03 16:40:12,864 [ 937413] ERROR - vice.AndroidProjectDataService - Last Action: ShowSettings
2014-11-03 16:40:13,130 [ …
Run Code Online (Sandbox Code Playgroud) 我正在尝试创建自定义格式以显示已用时间.
现在我正在使用:
CharSequence relativeTimeSpan = DateUtils.getRelativeTimeSpanString(
dateObject.getTime(),
System.currentTimeMillis(),
DateUtils.SECOND_IN_MILLIS,
flags);
Run Code Online (Sandbox Code Playgroud)
这将返回相对时间跨度,如下所示:
...
我要做的就是显示这个,如下所示:
...
我知道DateUtils有FORMAT_ABBREV_ALL标志,但这并不像我想要的那样缩写字符串...
如何为此创建自定义内容?
我想知道是否有任何方法可以将标题/部分添加到导航抽屉.我设法添加了类似的东西,但它只显示在列表的顶部,因为addHeaderView需要在setAdapter之前调用,如果我尝试在setAdapter之后添加更多元素,它们将重写第一个元素.
谢谢.
编辑:
public class MenuListAdapter extends BaseAdapter {
// Declare Variables
Context context;
String[] mTitle;
String[] mSubTitle;
int[] mIcon;
LayoutInflater inflater;
public MenuListAdapter(Context context, String[] title, String[] subtitle,
int[] icon) {
this.context = context;
this.mTitle = title;
this.mSubTitle = subtitle;
this.mIcon = icon;
inflater = (LayoutInflater) context
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}
@Override
public int getViewTypeCount() {
return super.getViewTypeCount();
}
@Override
public int getItemViewType(int position) {
return super.getItemViewType(position);
}
@Override
public int getCount() {
return mTitle.length;
}
@Override
public Object getItem(int position) …
Run Code Online (Sandbox Code Playgroud) 我正试图从另一个AsyncTask的 -method 开始一个AsyncTask ...... doInBackground()
这甚至可能吗?如果是,我怎样才能实现这一目标?
后期编辑:
我的想法是,我启动了一个asynctask,它将从Tweeter中获取状态......一切正常,直到这里......但是当我遇到一些特定的推文时,我需要用我服务器上的一些信息修改它们,在这里我将创建另一个网络操作,因为我需要等到我从服务器获取信息后才会这样做:
GetContent getContentServiceAsyncTask = new GetContent(context);
try {
tweetText = Uri.decode(getContentServiceAsyncTask.execute(
URL_GET_CONTENT, jsonRequest).get());
} catch (InterruptedException e) {
Log.e(TAG_DEBUG, "InterruptedException: ", e);
} catch (ExecutionException e) {
Log.e(TAG_DEBUG, "ExecutionException: ", e);
}
Run Code Online (Sandbox Code Playgroud)
这是从doInBackground()方法中已经启动的AsyncTask开始的...
我知道我可以在AsyncTask中添加方法,只需在doInBackground()方法中调用它们,但我需要在其他地方使用它们,我从onPostExecute启动这些AsyncTasks ...
如果你们认为有一个简单的解决办法,这不会影响我的表现,那将是很好的......如果不是,我将制作一些静态方法,我将在我需要的所有AsyncTasks中调用(但是这个将要求我修改我的很多代码)
我已将播放服务更新到最新版本,目前版本为9.2.0,我也想使用选择性模块进行谷歌播放服务.
// compile 'com.google.android.gms:play-services:9.2.0'
compile 'com.google.android.gms:play-services-maps:9.2.0'
compile 'com.google.android.gms:play-services-analytics:9.2.0'
compile 'com.google.android.gms:play-services-gcm:9.2.0'
compile 'com.google.android.gms:play-services-location:9.2.0'
Run Code Online (Sandbox Code Playgroud)
我遇到的问题是,现在进口如下:
import com.google.android.gms.location.places.Place;
import com.google.android.gms.location.places.AutocompleteFilter;
import com.google.android.gms.location.places.AutocompletePrediction;
import com.google.android.gms.location.places.Place;
import com.google.android.gms.location.places.PlaceBuffer;
import com.google.android.gms.location.places.Places;
Run Code Online (Sandbox Code Playgroud)
无法解决,尽管在他们的文档中声明位置服务也应该提供Places功能.
有人可以帮我解决这个问题吗?谢谢.
我需要在RecyclerView中有一个ViewPager(类似于水平图库),它垂直显示一个列表.RecyclerView的每一行都有一个ViewPager,允许在某些图像之间滑动.ViewPager还将支持点击事件,这些点击事件将传播到父级RecyclerView.
目前,我有以下实现:
列表适配器:
@Override
public void onBindViewHolder(MyHolder holder, int position) {
super.onBindViewHolder(holder, position);
Item listItem = get(position);
...
GalleryAdapter adapter =
new GalleryAdapter(getActivity().getSupportFragmentManager(),
item.mediaGallery);
holder.imageGallery.setAdapter(adapter);
...
}
Run Code Online (Sandbox Code Playgroud)
图库适配器:
public class GalleryAdapter extends FragmentStatePagerAdapter {
private final List<Item.Gallery> mItems;
@Bind(R.id.gallery_item)
ImageView galleryView;
public SearchResultsGalleryPagerAdapter(FragmentManager fm, @NonNull ArrayList<Item.Gallery> mediaGallery) {
super(fm);
mItems = mediaGallery;
}
@Override
public Fragment getItem(int position) {
GalleryFragment fragment = GalleryFragment.newInstance(mItems.get(position));
...
return fragment;
}
@Override
public int getCount() {
return null == mItems ? 0 : mItems.size(); …
Run Code Online (Sandbox Code Playgroud) android android-fragments android-viewpager fragmentstatepageradapter android-recyclerview
我试图建立一个项目,该项目依赖于使用“ .so”文件的库模块。
到目前为止,我有:
#版权所有(C)2010 The Android Open Source Project # #根据Apache许可证2.0版(“许可证”)获得许可; #除非符合许可,否则您不得使用此文件。 #您可以在以下位置获得许可的副本 # #http://www.apache.org/licenses/LICENSE-2.0 # #除非适用法律要求或书面同意,否则软件 根据许可协议分发的#是按“原样”分发的, #没有任何明示或暗示的保证或条件。 #有关特定语言的管理权限,请参阅许可证。 #许可中的限制。 LOCAL_PATH:= $(调用my-dir) 包括$(CLEAR_VARS) #在这里我们给出模块名称和源文件 LOCAL_MODULE:=我的模块 LOCAL_SRC_FILES:= $(TARGET_ARCH_ABI)/my-lib.so LOCAL_EXPORT_C_INCLUDES:= $(LOCAL_PATH)/ include 包括$(PREBUILT_SHARED_LIBRARY)
应用插件:“ com.android.library” android { 编译版本23 buildToolsVersion“ 23.0.2” defaultConfig { minSdkVersion 15 targetSdkVersion 23 版本代码1 versionName“ 1.0” } compileOptions { sourceCompatibility JavaVersion.VERSION_1_7 targetCompatibility JavaVersion.VERSION_1_7 } buildTypes { 发布 { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'),'proguard-rules.pro' } } sourceSets.main.jni.srcDirs = [] //禁用自动ndk-build调用 //默认情况下,将发布样式设置为 defaultPublishConfig“ X86Debug” publishNonDefault true productFlavors …
android module static-libraries gradle android-productflavors
我正在尝试为LinearLayout
高度设置为的视图的添加/删除操作设置动画wrap_content
。
目前我已经尝试设置android:animateLayoutChanges="true"
LinearLayout 并以编程方式启用这样的转换:
LayoutTransition transition = new LayoutTransition();
transition.setDuration(300);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {
transition.enableTransitionType(LayoutTransition.APPEARING);
transition.enableTransitionType(LayoutTransition.DISAPPEARING);
transition.setAnimateParentHierarchy(true);
}
container.setLayoutTransition(transition);
Run Code Online (Sandbox Code Playgroud)
Appearing 似乎工作得非常流畅,并且可以根据需要设置动画和调整大小。
我遇到的问题是消失,因为LinearLayout
在移除动画完成之前调整了容器的大小。
我也试过玩弄setAnimateParentHierarchy()
,它似乎并没有真正影响容器调整大小的方式和时间。
android android-animation android-linearlayout layouttransition
我在全屏显示自定义DialogFragment时遇到一些问题.此对话框具有可滚动且具有autocompletetextview的内容.
最初显示的对话框顶部有一个边距 - 以编程方式设置为布局内容顶部的透明视图.一旦autocompletetextview被聚焦,该边距就会减少到0(从而产生对话框以全屏模式进入的错觉).此时键盘也显示出来.
目前,键盘缩小了对话框的大小,对话框上的按钮向上移动,位于键盘上方.这会产生一个问题,因为只要autocompletetextview失去焦点,对话框就会调整大小,并且由于键盘调整大小也会创建一个闪烁:它们隐藏了键盘 - >对话框在底部移动 - >对话框调整为全屏 - >对话框resisez到初始大小
当前创建的对话框:
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
Dialog dialog = super.onCreateDialog(savedInstanceState);
dialog.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_NOTHING);
if (!hasTitle()) {
dialog.getWindow().requestFeature(Window.FEATURE_NO_TITLE);
}
// the content
//final RelativeLayout root = new RelativeLayout(getActivity());
//root.setLayoutParams(
// new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT));
//dialog.setContentView(root);
if (position != null) {
WindowManager.LayoutParams windowParams = dialog.getWindow().getAttributes();
windowParams.x = position.x;
windowParams.y = position.y;
dialog.getWindow().setAttributes(windowParams);
} else {
dialog.getWindow().setLayout(WindowManager.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT);
}
dialog.getWindow().setBackgroundDrawable(new ColorDrawable(hasTitle() ? Color.WHITE : Color.TRANSPARENT));
dialog.getWindow().setGravity(Gravity.TOP | Gravity.START);
return dialog;
}
Run Code Online (Sandbox Code Playgroud)
这部分工作,因为对话框没有填充宽度,它要小得多.
有些东西可以解决这个问题,但它会产生另一个问题:
@Override …
Run Code Online (Sandbox Code Playgroud) 我想检测每个Android设备上的相机文件夹.从我读过这个文件夹从制造商到另一个不同,也不能保证会有设备上甚至DCIM文件夹.
这是我现在用来获取文件的方法:
private static final Set<String> FILTER_FOLDERS = new HashSet<String>(
Arrays.asList(new String[] { "camera", "100andro", "100media" }));
private Set<String> getCameraPictures() {
final String[] columns = new String[] {
MediaStore.Images.ImageColumns._ID,
MediaStore.Images.ImageColumns.DATA,
MediaStore.Images.ImageColumns.BUCKET_DISPLAY_NAME,
MediaStore.Images.ImageColumns.DISPLAY_NAME,
MediaStore.Images.ImageColumns.DATE_TAKEN,
MediaStore.Images.ImageColumns.MIME_TYPE };
// Order by options - by date & descending
final String orderBy = MediaStore.Images.ImageColumns.DATE_TAKEN
+ " DESC";
// Stores all the images from the gallery in Cursor
final Cursor cursor = getContentResolver().query(
MediaStore.Images.Media.EXTERNAL_CONTENT_URI, // base URI for
// the Images
columns, // Which columns to …
Run Code Online (Sandbox Code Playgroud)