小编Dmi*_*sev的帖子

是否可以通过编程方式设置drawableLeft?

在XML中,我们可以使用以下方式设置drawableLeft:

    <Button
    android:id="@+id/previewBtn"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:background="@drawable/white_btn"
    android:drawableLeft="@drawable/green_circle"
    android:drawablePadding="16dp"
    android:text="Button" />
Run Code Online (Sandbox Code Playgroud)

如何以编程方式做同样的事情?

android

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

键盘出现时ActionBar隐藏

我正在使用ActionBarSherlock.windowSoftInputModeadjustPan(我已尝试过adjustResize,adjustNothing也).

我想ActionBar在键盘出现时保持在屏幕上但是滑动我的布局(因此文本仍然可见).

这是它看起来正确的方式: 在此输入图像描述

键盘出现时: 在此输入图像描述

问题是:如何ActionBar在使用时保持可见adjustPan(因此EditTexts始终可见)?

注意 我不能ScrollView用来握住我的View

android actionbarsherlock

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

断开应用后,Google Drive Android API仍会返回成功结果,但不会上传文件

我正在使用Google Drive Android API(作为Google Play服务的一部分)将文件上传到云端.

要连接客户端,我使用以下代码(简化):

apiClient = new GoogleApiClient.Builder(context)
            .addApi(Drive.API)
            .setAccountName(preferences.getString("GOOGLE_DRIVE_ACCOUNT", null))
            .build();

ConnectionResult connectionResult = apiClient.blockingConnect(SERVICES_CONNECTION_TIMEOUT_SEC, TimeUnit.SECONDS);
if (!connectionResult.isSuccess()) {
    throw new ApiConnectionException(); //our own exception
}
Run Code Online (Sandbox Code Playgroud)

要上传文件我正在使用以下代码(简化):

DriveApi.ContentsResult result = Drive.DriveApi.newContents(apiClient).await();
if (!result.getStatus().isSuccess()) {
    /* ... code for error handling ... */
    return;
}

OutputStream output = result.getContents().getOutputStream();
/* ... writing to output ... */

//create actual file on Google Drive
DriveFolder.DriveFileResult driveFileResult = Drive.DriveApi
            .getFolder(apiClient, folderId)
            .createFile(apiClient, metadataChangeSet, result.getContents())
            .await();
Run Code Online (Sandbox Code Playgroud)

除了一个特定的用户案例外,一切都按预期工作.当用户从"已连接的应用"中删除我们的应用时(使用Google设置应用),此代码仍会返回所有调用的成功结果.虽然文件永远不会上传到Google云端硬盘.

与Google Play服务的连接也会成功.

它是API的错误还是以某种方式检测到用户断开了应用程序?

android google-play-services google-drive-android-api

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

Android:签名APK问题 - 没有默认构造函数

我得到了

'This class should provide a default constructor'
Run Code Online (Sandbox Code Playgroud)

我正在尝试构建APK时出错

这是我的DBHelper类:

public class DBHelper extends SQLiteOpenHelper {

// create variables
public DBHelper(Context context)
{
    super(context, DATABASE_NAME , null, 1);
}
// onCreate
Run Code Online (Sandbox Code Playgroud)

我的印象是

public DBHelper(Context context)
Run Code Online (Sandbox Code Playgroud)

是默认构造函数?并检查了其他答案,找不到任何帮助......

提前致谢

android

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

静态方法的抽象类.那是对的吗?

任务:我想为许多类使用一些方法.方法相同,因此不需要为每个类实现它们.在我的情况下 - 我使用Android SDK,我发送http请求到服务器.

问题:有想法使用这样的结构:

class abstract MethodsCarrier{

    public static void method1(){ /*something*/ }
    public static int method2(){ /*return something*/ }

}
Run Code Online (Sandbox Code Playgroud)

它有效,没有问题.但我不确定这个课程是否抽象.它是一种正确的方式吗?

java android

4
推荐指数
1
解决办法
412
查看次数

AllJoyn中的BUS_BLOCKING_CALL_NOT_ALLOWED错误

我正在尝试将AllJoyn用于我的应用程序,但是当我尝试使用示例中的代码(示例13)时,我无法加入会话并获得错误BUS_BLOCKING_CALL_NOT_ALLOWED.

    bus.registerBusListener(new BusListener() {
        @Override
        public void foundAdvertisedName(String name,
                                        short transport,
                                        String namePrefix) {
            short contactPort = CONTACT_PORT;
            SessionOpts sessionOpts = new SessionOpts();
            Mutable.IntegerValue sessionId = new Mutable.IntegerValue();

            Status status = bus.joinSession("com.my.well.known.name", //here's error: status = BUS_BLOCKING_CALL_NOT_ALLOWED 
                    contactPort,
                    sessionId,
                    sessionOpts,
                    new SessionListener());
            bus.cancelAdvertiseName("com.my.well.known.name",SessionOpts.TRANSPORT_ANY);
        }
    });
Run Code Online (Sandbox Code Playgroud)

这段代码来自样本,我不知道它有什么问题.你能帮助我吗?

如有必要,请参阅完整代码:http://pastebin.com/f1sD7RtK

我正在尝试创建新频道并自动连接到它,无需用户参与.

我也非常感谢任何好的建议或样品.

android p2p alljoyn

4
推荐指数
1
解决办法
653
查看次数

如何在API级别11中获取位图字节数?

bitmap.getByteCount()自API级别12以来,有一种有用的方法.但是如何在API 11中获得相同的值?

android

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

覆盖`equals()`方法会在`HashMap`中产生意外结果

这是来自OCJP 6考试的问题,因此故意不完全正确(但合法).

给定代码:

class ToDos {
    String day;

    public ToDos(String d) {
        day = d;
    }

    public boolean equals(Object o) {
        return ((ToDos) o).day == day;
    }

    public int hashCode() { return 9; }
}

public class MapEQ {

    public static void main(String[] args) {
        Map<ToDos, String> map = new HashMap<ToDos, String>();

        ToDos t1 = new ToDos("Monday");
        ToDos t2 = new ToDos("Mond" + "a" + "y");
        ToDos t3 = new ToDos("Tuesday");

        map.put(t1, "a");
        map.put(t2, "b");
        map.put(t3, "c");

        System.out.println(map.size());
    }

} …
Run Code Online (Sandbox Code Playgroud)

java scjp

2
推荐指数
1
解决办法
143
查看次数

为什么我们不能使用&(*a)但可以使用typedef来实现它?

我是C++的新手,我想了解下面这些例子之间的区别.

我们无法创造功能

void someFunc(int &*a){
    int *b=new int; //just for example
    a=b;
}
Run Code Online (Sandbox Code Playgroud)

但是使用typedef

typedef int* pint;

void someFunc(pint &a){
    int *b=new int; //just for example
    a=b;
}
Run Code Online (Sandbox Code Playgroud)

一切正常.

它只是一个编译技巧,还是这种行为更复杂的原因?

c++

0
推荐指数
1
解决办法
119
查看次数

传递long []而不是Long

我有这样的功能

void doSmth(Long... paramg){
}
Run Code Online (Sandbox Code Playgroud)

但我无法通过long[]代替Long....为什么?我认为这是相同的事情(它们之间的区别是什么?).

我如何通过long []而不是Long ...?

java

0
推荐指数
1
解决办法
71
查看次数

这段代码怎么会导致死锁?

在通过SCJP6考试模拟器时,我发现了这样的问题:

class Clerk implements Runnable {

    private Record A, B;

    public Clerk(Record a, Record b) {
        A = a;
        B = b;
    }

    public void run() {
        while(true) {
            doStuff(A, B);
        }
    }

    public synchronized void doStuff(Record a, Record b) {
        synchronized(a) {
        synchronized(b) {
            a.add(1);
            b.add(-1);
        }}
    }

}
Run Code Online (Sandbox Code Playgroud)

然后

Record a = new Record();
Record b = new Record();

new Thread(new Clerk(a, b)).start();
new Thread(new Clerk(a, b)).start();
Run Code Online (Sandbox Code Playgroud)

答案说这段代码导致死锁,但我不明白 - 这究竟是怎么回事?有人可以帮我解决这个问题吗?

java scjp

0
推荐指数
1
解决办法
275
查看次数