javascript

java

python

c#

android

c++

node.js

php

html

jquery

ios

reactjs

css

.net

git

ruby-on-rails

sql

c

ruby

string

为什么要使用Android Picasso库下载图像?

为什么我应该通过Picasso库而不是仅使用以下代码下载图像:

private Bitmap DownloadImage(String URL) 
{
    Bitmap bitmap = null; 
    InputStream in = null; 

    try 
    {
        in = OpenHttpGETConnection(URL);
        bitmap = BitmapFactory.decodeStream(in); in.close();
    } 
    catch (Exception e) 
    {
        Log.d("DownloadImage", e.getLocalizedMessage());
    }

    return bitmap; 
}

另一个问题:

毕加索是在用户界面中还是通过后台线程下载图像?

trans by 2020-07-27T20:10:02Z

android-禁用所有视图的触摸事件

禁用所有视图的触摸事件的最佳方法是什么?

非常感谢,

格拉齐

trans by 2020-07-27T19:09:52Z

android-无法启动Genymotion虚拟设备-仅Virtualbox Host Host以太网适配器失败

我正在Windows 8 Pro上使用Genymotion v13.0成功创建虚拟设备,但是当我尝试运行它时,出现以下错误:Virtualbox Host Only Ethernet Adapter Failed to start

屏幕截图:

enter image description here

尝试通过Virtualbox运行它时,出现以下错误消息:Virtualbox Host Only Ethernet Adapter Failed to start

屏幕截图:

enter image description here

在出现此问题之前,虚拟设备以前可能运行良好。

有人可以告诉我如何解决吗?

trans by 2020-07-27T17:39:27Z

导致IOException和损坏的点子的原因

我的AVD是API 15,我不知道为什么,但是每当我在模拟器上运行应用程序时,都会出现以下消息。 除了控制台中的错误消息外,它似乎没有造成任何麻烦。

[2012-06-17 00:03:26 - ddmlib] Broken pipe
java.io.IOException: Broken pipe
    at sun.nio.ch.FileDispatcher.write0(Native Method)
    at sun.nio.ch.SocketDispatcher.write(SocketDispatcher.java:47)
    at sun.nio.ch.IOUtil.writeFromNativeBuffer(IOUtil.java:122)
    at sun.nio.ch.IOUtil.write(IOUtil.java:93)
    at sun.nio.ch.SocketChannelImpl.write(SocketChannelImpl.java:352)
    at com.android.ddmlib.JdwpPacket.writeAndConsume(JdwpPacket.java:213)
    at com.android.ddmlib.Client.sendAndConsume(Client.java:575)
    at com.android.ddmlib.HandleHeap.sendREAQ(HandleHeap.java:348)
    at com.android.ddmlib.Client.requestAllocationStatus(Client.java:421)
    at com.android.ddmlib.DeviceMonitor.createClient(DeviceMonitor.java:837)
    at com.android.ddmlib.DeviceMonitor.openClient(DeviceMonitor.java:805)
    at com.android.ddmlib.DeviceMonitor.processIncomingJdwpData(DeviceMonitor.java:765)
    at com.android.ddmlib.DeviceMonitor.deviceClientMonitorLoop(DeviceMonitor.java:652)
    at com.android.ddmlib.DeviceMonitor.access$100(DeviceMonitor.java:44)
    at com.android.ddmlib.DeviceMonitor$3.run(DeviceMonitor.java:580)

可能是什么原因?

trans by 2020-07-27T17:01:31Z

android-无法为ApkVariantOutputImpl_Decorated设置只读属性'outputFile'的值

我在gradle脚本中使用以下代码来重命名由AndroidStudio生成的apk:

applicationVariants.all { variant ->
    variant.outputs.each { output ->
        output.outputFile = new File(output.outputFile.parent, defaultConfig.versionCode + "_" + output.outputFile.name)
    }
}

因此它生成的apk的名称如下:345-app-release.apk,其中345是versionCode。

但是更新到Android Studio 3.0后,它会返回以下错误:

无法为设置只读属性'outputFile'的值 ApkVariantOutputImpl_Decorated {apkData = Main {type = MAIN,fullName = debug, 过滤器= []}}类型 com.android.build.gradle.internal.api.ApkVariantOutputImpl。

如何使用新的构建工具实现类似的重命名。

trans by 2020-07-27T15:23:05Z

ADT和SDK工具更新到v17后,Gson NoClassDefFoundError

今天,我将ADT和SDK工具更新为v17,并使用Google的gson jar库开始引发NoClassDefFoundError。这是logcat的输出:

> 03-22 12:30:58.941: E/AndroidRuntime(21672): FATAL EXCEPTION: main
> 03-22 12:30:58.941: E/AndroidRuntime(21672):
> java.lang.NoClassDefFoundError: com.google.gson.Gson 03-22
> 12:30:58.941: E/AndroidRuntime(21672):    at
> com.matriksdata.conn.XRequestHandler.connect(XRequestHandler.java:35)
> 03-22 12:30:58.941: E/AndroidRuntime(21672):    at
> com.matriksdata.conn.XRequestHandler.makeRequest(XRequestHandler.java:
> 29) 03-22 12:30:58.941: E/AndroidRuntime(21672):    at
> com.matriksdata.bavul.XBaseWithConnectionActivity.makeRequest(XBaseWithConnectionActivity.java:
> 46) 03-22 12:30:58.941: E/AndroidRuntime(21672):    at
> com.matriksdata.ui.login.SplashScreenActivity.onCreate(SplashScreenActivity.java:
> 36) 03-22 12:30:58.941: E/AndroidRuntime(21672):    at
> android.app.Activity.performCreate(Activity.java:4465) 03-22
> 12:30:58.941: E/AndroidRuntime(21672):    at
> android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:
> 1049) 03-22 12:30:58.941: E/AndroidRuntime(21672):    at
> android.app.ActivityThread.performLaunchActivity(ActivityThread.java:
> 1919) 03-22 12:30:58.941: E/AndroidRuntime(21672):    at
> android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:
> 1980) 03-22 12:30:58.941: E/AndroidRuntime(21672):    at
> android.app.ActivityThread.access$600(ActivityThread.java:122) 03-22
> 12:30:58.941: E/AndroidRuntime(21672):    at
> android.app.ActivityThread$H.handleMessage(ActivityThread.java:1146)
> 03-22 12:30:58.941: E/AndroidRuntime(21672):    at
> android.os.Handler.dispatchMessage(Handler.java:99) 03-22
> 12:30:58.941: E/AndroidRuntime(21672):    at
> android.os.Looper.loop(Looper.java:137) 03-22 12:30:58.941:
> E/AndroidRuntime(21672):    at
> android.app.ActivityThread.main(ActivityThread.java:4340) 03-22
> 12:30:58.941: E/AndroidRuntime(21672):    at
> java.lang.reflect.Method.invokeNative(Native Method) 03-22
> 12:30:58.941: E/AndroidRuntime(21672):    at
> java.lang.reflect.Method.invoke(Method.java:511) 03-22 12:30:58.941:
> E/AndroidRuntime(21672):    at com.android.internal.os.ZygoteInit
> $MethodAndArgsCaller.run(ZygoteInit.java:784) 03-22 12:30:58.941:
> E/AndroidRuntime(21672):    at
> com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551) 03-22
> 12:30:58.941: E/AndroidRuntime(21672):    at
> dalvik.system.NativeStart.main(Native Method)

有任何想法吗?

trans by 2020-07-27T14:41:44Z

android-回收站视图项目将支持库从“ 23.1.1”升级到“ 23.2.1”后填满了整个回收站视图的高度

以前,我正在使用以下旧的支持库“ 23.1.1”。

compile 'com.android.support:appcompat-v7:23.1.1'
compile 'com.android.support:support-v4:23.1.1'
compile 'com.android.support:preference-v7:23.1.1'
compile 'com.android.support:preference-v14:23.1.1'
compile 'com.android.support:design:23.1.1'
compile 'com.android.support:recyclerview-v7:23.1.1'

效果很好。 这是我的LinearLayout.LayoutParams.WRAP_CONTENT的样子

enter image description here

现在,由于已完成一些错误修复,我希望迁移到“ 23.2.1”。

compile 'com.android.support:appcompat-v7:23.2.1'
compile 'com.android.support:support-v4:23.2.1'
compile 'com.android.support:preference-v7:23.2.1'
compile 'com.android.support:preference-v14:23.2.1'
compile 'com.android.support:design:23.2.1'
compile 'com.android.support:recyclerview-v7:23.2.1'

但是,突然之间,我所有的LinearLayout.LayoutParams.WRAP_CONTENT物品似乎都填满了normalLayoutParams的整个高度。

enter image description here

enter image description here

这是我的布局文件的代码片段:[https://gist.github.com/yccheok/241a0d38d56305a1be24d09b54eb1600]

真正令我困惑的是,尽管我在回收者视图项目的布局中使用了LinearLayout.LayoutParams.WRAP_CONTENT,但它无法按预期工作。

我没有为LinearLayout.LayoutParams.WRAP_CONTENT使用任何自定义布局管理器。

从[http://developer.android.com/tools/support-library/index.html],我意识到23.2.1这次对LinearLayout.LayoutParams.WRAP_CONTENT进行了很多更改。

  • 修复了与各种度量规范方法有关的错误。 (问题201856)
  • 缩短了锁定周期,在该锁定周期中LinearLayout.LayoutParams.WRAP_CONTENT在计算布局或滚动时不允许更改适配器。 (问题202046)
  • 修复了在看不见的项目上调用LinearLayout.LayoutParams.WRAP_CONTENT时崩溃的问题。 (问题202136)
  • 修复了当LinearLayout.LayoutParams.WRAP_CONTENT在同一测量通道中添加和删除视图时发生的崩溃。 (问题193958)

我最怀疑的是[https://code.google.com/p/android/issues/detail?id=201856],因为它涉及更改各种度量标准的方法

到目前为止,我尝试使用一个简单的LinearLayout.LayoutParams.WRAP_CONTENT项目(使用23.2.1,但失败了)重现该问题! 它没有“项目填满normalLayoutParams整个高度”的问题。 我的猜测是,我的简单项目无法模拟生产项目的复杂布局结构。 我的生产项目具有以下布局

<Activity>
    <Fragment>
        <View Pager>
            <Fragment>
                <RecyclerView />
            </Fragment>
        </View Pager>
    </Fragment>
</Activity>

调试几个小时后,我仍然找不到此类问题的根本原因,有任何提示吗?

谢谢。

我尝试过的

我曾尝试更改LinearLayout.LayoutParams.WRAP_CONTENT

<android.support.v7.widget.RecyclerView
    android:id="@+id/recycler_view"
    android:layout_width="match_parent"
    android:layout_height="match_parent"

<android.support.v7.widget.RecyclerView
    android:id="@+id/recycler_view"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"

最初看起来不错。 但是,当您执行滚动时,事情无法按预期进行:[https://www.youtube.com/watch?v=U2EChFn6WkI]

更新:我终于找出了根本原因

是我这边的错误! 由于我需要为最后一行添加不同的边距,因此这是我的适配器代码。

@Override
public void onBindViewHolder(ViewHolder holder, int position) {
    final List<TransactionSummary> transactionSummaries = buyArray.transactionSummaries;

    if (position == transactionSummaries.size() - 1) {
        holder.itemView.setLayoutParams(lastLayoutParams);
    } else {
        holder.itemView.setLayoutParams(normalLayoutParams);
    }

不幸的是,LinearLayout.LayoutParams.WRAP_CONTENTnormalLayoutParams被初始化为

    normalLayoutParams = new LinearLayout.LayoutParams(
        LinearLayout.LayoutParams.MATCH_PARENT,
        LinearLayout.LayoutParams.MATCH_PARENT
    );

    lastLayoutParams = new LinearLayout.LayoutParams(
        LinearLayout.LayoutParams.MATCH_PARENT,
        LinearLayout.LayoutParams.MATCH_PARENT
    );

使用LinearLayout.LayoutParams.WRAP_CONTENT解决了问题。

trans by 2020-07-27T12:21:37Z

数据库更改时,Android SimpleCursorAdapter不会更新

我有一个Android notifydatasetchanged(),该数据库由Cursor通过SimpleCursorAdapter支持。

单击项目后,将切换数据库中相应行中的标志字段,并且需要更新列表中的视图。

问题是,当更新后的视图退出屏幕并被回收时,旧值返回视图时会显示在视图上。 每当thr列表重新绘制(方向更改等)时,都会发生相同的情况。

我使用notifydatasetchanged()刷新游标适配器,但似乎无效。

我应该如何更新数据库,以便同时更新游标?

trans by 2020-07-27T11:42:20Z

帖子-Android改装:内容类型为application / x-www-form-urlencoded

android开发的新手。 我正在尝试使用改造来发送发布请求。 在我的改造日志中,我看到了

Content-Type: text/plain; charset=utf-8

我发现请求仅在使用内容类型时有效:

application/x-www-form-urlencoded

我搜索了Google,但没有找到明确设置内容类型的明确方法。 有人知道怎么做吗?

trans by 2020-07-27T06:13:00Z

Android,Java:HTTP POST请求

我必须向Web服务执行http发布请求,以使用用户名和密码对用户进行身份验证。 Web服务人员向我提供了以下信息,以构造HTTP Post请求。

POST /login/dologin HTTP/1.1
Host: webservice.companyname.com
Content-Type: application/x-www-form-urlencoded
Content-Length: 48

id=username&num=password&remember=on&output=xml

我将得到的XML响应是

<?xml version="1.0" encoding="ISO-8859-1"?>
<login>
 <message><![CDATA[]]></message>
 <status><![CDATA[true]]></status>
 <Rlo><![CDATA[Username]]></Rlo>
 <Rsc><![CDATA[9L99PK1KGKSkfMbcsxvkF0S0UoldJ0SU]]></Rsc>
 <Rm><![CDATA[b59031b85bb127661105765722cd3531==AO1YjN5QDM5ITM]]></Rm>
 <Rl><![CDATA[username@company.com]]></Rl>
 <uid><![CDATA[3539145]]></uid>
 <Rmu><![CDATA[f8e8917f7964d4cc7c4c4226f060e3ea]]></Rmu>
</login>

这就是我正在做的HttpPost post Request = new HttpPost(url String); 我该如何构造其余参数?

trans by 2020-07-27T06:01:23Z

com.android.ddmlib.SyncException:打开的文件太多

当我尝试在设备上的Eclipse中运行应用程序时,我开始在控制台中收到大量com.android.ddmlib.SyncException: Too many open files异常/错误。

为什么会这样,这意味着什么? 我该怎么做才能阻止这种情况?

trans by 2020-07-27T03:09:18Z

java-在Android Studio 2.2中启用注释处理器选项

我试图在项目中使用Java 8,为此我添加了jack编译器。

启用jack后,我开始对使用注释处理的库产生问题,并在网上查看,我读到我需要android studio 2.2和com.android.tools.build:gradle:2.2.0-alpha6来编译从注释生成代码的库 。

我下载了Android Studio 2.2预览版6,并将项目转换为该版本。 之后,我发现不再支持apt gradle插件,然后我需要将使用apt的每个依赖项更改为使用新的notificationProcessor选项。

例如:

apt "org.projectlombok:lombok:$rootProject.lombokVersion"

annotationProcessor "org.projectlombok:lombok:$rootProject.lombokVersion"

现在,如果我使用“ make project”,则可以毫无问题地编译该项目,但是如果我尝试执行该项目,则注释应该生成的代码会出错。

另外,当我打开项目时,我从lombok插件收到警告“该项目的注释处理似乎已禁用”。 打开项目设置并转到“构建->编译器”时,找不到注释处理器。

因此,我的问题是:如何在Android Studio 2.2中启用注释处理器? 此功能已禁用? 如果是,如何从注释生成代码?

- 编辑 - 我正在发出“拉取请求”以更改项目以使用Java 8进行编译,您可以在此处检查PR:[https://github.com/jonathanrz/myexpenses-android/pull/57]

trans by 2020-07-27T00:33:39Z

android-如何在ImageView中获取Drawable的尺寸?

这个问题已经在这里有了答案:

  • 如何获取android.widget.ImageView的宽度和高度? 10个答案

在ImageView中检索Drawable尺寸的最佳方法是什么?

我的ImageView有一个初始化方法,我在其中创建ImageView:

private void init() {
    coverImg = new ImageView(context);
    coverImg.setScaleType(ScaleType.FIT_START);
    coverImg.setImageDrawable(getResources().getDrawable(R.drawable.store_blind_cover));
    addView(coverImg);
}

在布局oder测量过程中的某个时候,我需要Drawable的确切尺寸来调整其余组件的周围。

coverImg.getHeight()coverImg.getMeasuredHeight()不返回我需要的结果,如果我使用coverImg.getDrawable().getBounds(),则在得到ImageView缩放之前,我会得到尺寸。

谢谢你的帮助!

trans by 2020-07-26T23:43:02Z

xml-如何在android中设置开关小部件的默认值

我正在使用几个开关小部件来编码我的xml文件。 但我不知道如何将它们的默认值设置为ON。 我只是想在xml文件中解决此问题,所以没有Java。

trans by 2020-07-26T23:10:02Z

java-错误:更改minSdkVersion时超时等待锁定构建文件的构建脚本类缓存

我尝试在build.gradle(模块:app)中更改minSdkVersion(模块:app)并得到下一个错误:

Error:Timeout waiting to lock buildscript class cache for build file 'E:\pathtoproject\app\build.gradle' (C:\Users\Administrator\.gradle\caches\2.2.1\scripts\build_f00bwdji3qxl7urq5chsbakgv\ProjectScript\buildscript). It is currently in use by another Gradle instance.
Owner PID: unknown
Our PID: 4592
Owner Operation: unknown
Our operation: Initialize cache
Lock file: C:\Users\Administrator\.gradle\caches\2.2.1\scripts\build_f00bwdji3qxl7urq5chsbakgv\ProjectScript\buildscript\cache.properties.lock

这是什么错误? 如何更改minSdkVersion

trans by 2020-07-26T22:52:45Z

java-片段中的commit()和commitAllowingStateLoss()有什么区别

我在我的带有片段的项目中使用了commit方法。

无论如何,有时我会收到IllegalStateException: Can not perform this action after onSaveInstanceState错误,但找不到此方法的任何好方法,而只是此方法commitAllowingStateLoss()。我将commit函数更改为commitAllowingStateLoss(),但没有长时间使用它来测试,所以该功能对我有帮助吗? 主要问题是commit()commitAllowingStateLoss()之间有什么区别?

trans by 2020-07-26T22:28:53Z

android-是否可以从底部填充ListView?

我有一个简单的应用程序,它基本上由一行按钮和要选择和操作的项目的ListView组成。 列表中可能只有一个项目,也可能只有几个。 但是,我希望列表从ListView的底部填充,因为大多数人握住手机的方式可以更轻松地选择靠近屏幕底部的项目。 这可能吗?

trans by 2020-07-26T20:07:35Z

对话框-主题不适用于Android上的DialogFragment

我将旧的Dialogs切换为DialogFragment,但是主题和样式似乎不起作用。

我正在使用兼容性库v4中的DialogFragment,并且在onCreate方法中尝试调用setStyle(style,theme);。 具有许多不同的主题,但是该对话框在运行Android 4.0.3的模拟器中始终显示为“旧”对话框(即,它未以Holo主题显示)。

还有什么我应该做的吗? 使用兼容性库是否禁用Holo主题或其他功能? 如果是这样,我是否应该创建两个DialogFragment,一个用于较旧版本,一个用于较新版本?

谢谢!


这是我的对话框的(简化)代码。 我已经尝试了Theme_Holo_Dialog_NoActionBar和Theme_DeviceDefault_Dialog_NoActionBar,但是Android 4模拟器始终将对话框显示为“旧”对话框,而不是使用Holo主题。 我究竟做错了什么? :(

[...]
import android.support.v4.app.DialogFragment;
[...]

public class AlertDialogFragment extends DialogFragment {

  public static AlertDialogFragment newInstance(int id) {

    AlertDialogFragment f = new AlertDialogFragment();
    Bundle args = new Bundle();
    args.putInt("id", id);
    f.setArguments(args);

 }

  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    int style = DialogFragment.STYLE_NORMAL, theme = 0;
    theme = android.R.style.Theme_Holo_Dialog_NoActionBar;
    setStyle(style, theme);     
  }

  @Override
  public Dialog onCreateDialog(Bundle savedInstanceState) {

    mId = getArguments().getInt("id");
    AlertDialog.Builder builder = new AlertDialog.Builder(getActivity())
        .setTitle(mTitle)
        .setMessage(mMessage)
        .setPositiveButton(getString(R.string.btn_ok), new DialogInterface.OnClickListener() {      
            @Override
            public void onClick(DialogInterface dialog, int which) {
                dismiss();                  
            }
        });
        return builder.create();
    }
trans by 2020-07-26T18:47:07Z

如何在Android中将样式写入EditText的错误文本?

我正在尝试为我的Android应用程序编写新的自定义样式。 我需要给在textColor中设置background后出现的errorText赋予样式。

如何自定义样式?

例如:我要在style.xml中设置其background白色和textColor:蓝色等。

enter image description here

trans by 2020-07-26T17:44:22Z

html-禁用Android浏览器的输入叠加层?

我有一个带有一些文本输入的网页。 Android浏览器(至少在我现在所拥有的Android 2.3.4上)似乎覆盖了其对焦点页面输入的控制。

问题在于,重叠控件是一个白色矩形,看起来很难看。 有没有办法禁用它或以某种方式设置它的样式?

更新:

这是来自Android模拟器的示例:

enter image description here

圆角和背景丢失。 在实际的设备上,我什至看不到控件周围的边框。

我可能应该提到我正在使用jQuery Mobile。 我的测试设备是HTC Evo 4G。

相关问题:

输入的焦点风格不同

如果在HTC设备上突出显示,则WebView中的输入元素始终具有相同的样式

trans by 2020-07-26T17:34:48Z