小编Ion*_*gru的帖子

IntelliJ新的android gradle插件(0.14.+)

我正在尝试在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)

android build intellij-idea gradle

31
推荐指数
1
解决办法
4959
查看次数

相对时间跨度的自定义格式

我正在尝试创建自定义格式以显示已用时间.

现在我正在使用:

CharSequence relativeTimeSpan = DateUtils.getRelativeTimeSpanString(
     dateObject.getTime(), 
     System.currentTimeMillis(), 
     DateUtils.SECOND_IN_MILLIS,
     flags);
Run Code Online (Sandbox Code Playgroud)

这将返回相对时间跨度,如下所示:

  • 1分钟前
  • 36分钟前
  • 4小时前

...

我要做的就是显示这个,如下所示:

  • 1米
  • 36米
  • 4H

...

我知道DateUtils有FORMAT_ABBREV_ALL标志,但这并不像我想要的那样缩写字符串...

如何为此创建自定义内容?

format android date

14
推荐指数
1
解决办法
4362
查看次数

带有标题/部分的导航抽屉

我想知道是否有任何方法可以将标题/部分添加到导航抽屉.我设法添加了类似的东西,但它只显示在列表的顶部,因为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)

android android-layout android-listview navigation-drawer

11
推荐指数
2
解决办法
2万
查看次数

从另一个AsyncTask doInBackground()启动AsyncTask

我正试图从另一个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中调用(但是这个将要求我修改我的很多代码)

android android-asynctask

9
推荐指数
3
解决办法
2万
查看次数

选择性Google Play Services API无法查找课程

我已将播放服务更新到最新版本,目前版本为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功能.

有人可以帮我解决这个问题吗?谢谢.

import android location google-play-services

9
推荐指数
1
解决办法
2436
查看次数

将RecyclerView内的ViewPager作为行项

我需要在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

7
推荐指数
1
解决办法
1万
查看次数

Android多功能库模块用于应用程序模块

我试图建立一个项目,该项目依赖于使用“ .so”文件的库模块。

到目前为止,我有:

库模块

  • .so文件进入jniLib:armeabi,armeabi-v7a和x86。
  • 这是用于配置的Android.mk文件:
#版权所有(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)
  • 这是build.gradle文件:
应用插件:“ 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

6
推荐指数
0
解决办法
1253
查看次数

带有 wrap_content 的 LinearLayout 的 LayoutTransition

我正在尝试为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

5
推荐指数
1
解决办法
1261
查看次数

打开软键盘时,始终会调整DialogFragment的大小

我在全屏显示自定义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)

keyboard android resize dialogfragment

5
推荐指数
1
解决办法
2663
查看次数

检测Android Camera文件夹

我想检测每个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)

directory camera android

3
推荐指数
1
解决办法
4954
查看次数