小编ved*_*vis的帖子

java等效于printf("%*.*f")

在C中,printf()语句允许在参数列表中提供精度长度.

printf("%*.*f", 7, 3, floatValue);
Run Code Online (Sandbox Code Playgroud)

其中星号分别用第一和第二值替换.

我正在寻找Android/Java中的等价物; String.format()抛出异常.

编辑:谢谢,@ Tenner; 它确实有效.

java string.format printf android

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

Android:从静态Handler类调用非静态方法

鉴于此代码:

public class MainActivity extends FragmentActivity implements ActionBar.TabListener {

public static final int MESSAGE_NOT_CONNECTED = 1;

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main_layout);
}

// -------------------------------------------------
public final void setStatus(int Rid) {
    final ActionBar actionBar = getActionBar();
    actionBar.setSubtitle(Rid);
}

// -------------------------------------------------
static Handler mHandler = new Handler() {
    @Override
    public void handleMessage(Message msg) {
        switch (msg.what) {
        case MESSAGE_NOT_CONNECTED:
            setStatus(R.string.title_not_connected);
            break;
        }
    }
}
}
Run Code Online (Sandbox Code Playgroud)

我收到编译错误:无法对非静态方法setStatus(int)进行静态引用...

这是有道理的,因为setStatus()中的getActionBar()是一个非静态方法.

由于警告,我使Handler类保持静态:此Handler类应该是静态的,否则可能会发生泄漏.

问题:如何从静态处理程序中正确访问setStatus()方法?

编辑:新的处理程序代码是答案.

static class hHandler extends Handler {
    private final WeakReference<MainActivity> …
Run Code Online (Sandbox Code Playgroud)

android handler android-actionbar

8
推荐指数
1
解决办法
8191
查看次数

OnPreferenceClickListener:布尔返回值有什么作用?

从这个例子:

private static Preference.OnPreferenceClickListener BindToPreferenceClickListener = new Preference.OnPreferenceClickListener() {
    public boolean onPreferenceClick(Preference preference) {
        boolean isHandled = false;
        if (...) {
           isHandled = true;
        }
        return isHandled;
    }
}
Run Code Online (Sandbox Code Playgroud)

"真实"的回报价值是多少?API文档声明该值表示如果"true"处理了点击,但这究竟意味着什么?我认为这意味着没有调用传递首选项的编辑器,而是可以使用自定义编辑器,但我的实验得出结论,默认编辑器在任一状态下都被调用.

android android-preferences

8
推荐指数
2
解决办法
1678
查看次数

getConnectionInfo()异常

给出以下代码:

wifi = (WifiManager) getSystemService(Context.WIFI_SERVICE);
WifiInfo info = wifi.getConnectionInfo();
Run Code Online (Sandbox Code Playgroud)

...清单中的这一行:

<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
Run Code Online (Sandbox Code Playgroud)

我仍然得到异常:

WifiService: Neither user 10057 nor current process has android.permission.ACCESS_WIFI_STATE.
Run Code Online (Sandbox Code Playgroud)

我正在Xoom,Honeycomb 3.1上调试。

如果需要任何其他信息,请询问。

编辑:添加清单

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
      package="com.android.WiFiDemo"
      android:versionCode="1"
      android:versionName="1.0">
    <uses-sdk android:minSdkVersion="12" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>

    <application android:icon="@drawable/icon" android:label="@string/app_name" android:debuggable="true">
        <activity android:label="@string/app_name" android:name="WiFiDemo">
            <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
            <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
              <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

    </application>
</manifest>
Run Code Online (Sandbox Code Playgroud)

android android-manifest android-wifi

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

Google Drive Android API:已删除的文件夹仍存在于查询中

运行下面的代码,我在平板电脑上创建了一个包含Google Drive Android API的文件夹.几秒钟后,从PC上的远程位置删除该文件夹.当我重新运行代码时,API仍然认为"MyFolder"存在,即使它已被删除且在平板电脑上的Google云端硬盘应用中不可见.文件夹持久性最终会在一段时间后消失,代码按预期工作.这是云驱动器的预期行为吗?

Query query = new Query.Builder()
        .addFilter(Filters.and(Filters.eq(
                SearchableField.TITLE, "MyFolder"),
                Filters.eq(SearchableField.TRASHED, false)))
        .build();
Drive.DriveApi.query(getGoogleApiClient(), query)
        .setResultCallback(new ResultCallback<DriveApi.MetadataBufferResult>() {
    @Override
    public void onResult(DriveApi.MetadataBufferResult result) {
        if (!result.getStatus().isSuccess()) {
            showMessage("Cannot create folder in the root.");
        } else {
            boolean isFound = false;
            for(Metadata m : result.getMetadataBuffer()) {
                if(!isFound) {
                    if (m.getTitle().equals("MyFolder")) {
                        showMessage("Folder exists");
                        isFound = true;
                    }
                }
            }
            if(!isFound) {
                showMessage("Folder not found; creating it.");
                MetadataChangeSet changeSet = new MetadataChangeSet.Builder()
                        .setTitle("MyFolder")
                        .build();
                Drive.DriveApi.getRootFolder(getGoogleApiClient())
                        .createFolder(getGoogleApiClient(), changeSet)
                        .setResultCallback(new ResultCallback<DriveFolder.DriveFolderResult>() { …
Run Code Online (Sandbox Code Playgroud)

android google-drive-android-api

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

ArrayAdapter.insert()有什么作用?

我在任何地方都没有看到明确的答案:ArrayAdapter.insert()是否在指定位置插入项目..或..它是否替换指定位置的信息?

android android-arrayadapter

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