1

我是 Java 和 Android 的新手,所以希望我的问题是有意义的(我想我知道我在问什么!)

我正在研究书中的一个例子,我有一个带有以下语句的查询:

String[] tags = savedSearches.getAll().keySet().toArray(new String[0]);

savedSearches 是一个 SharedPreferences 对象。

savedSearches.getAll()返回一个允许调用的 Map KeySet()。我无法理解的是如何KeySet()调用。我的印象是,如果您要在代码中使用类/接口,那么您需要导入它或导入直接或间接扩展/实现进行调用的对象的类/接口,在这种情况下是参考到地图。

我正在处理的示例导入以下内容:

import java.util.Arrays;
import android.os.Bundle;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.SharedPreferences;
import android.net.Uri;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.inputmethod.InputMethodManager;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TableLayout;
import android.widget.TableRow;

我已经查看了 Java 和 Android API,但我看不到在上述任何一个中都实现了 Map(除非我错过了它!)所以原则上我不应该能够调用KeySet(). 那么如何进行此调用KeySet()呢?

希望以上内容具有某种意义:/任何有助于我理解这一点的正确方向的帮助或指示将不胜感激。

4

1 回答 1

2

keySet()是一种返回一组所有键的方法Map(public Set<K> keySet ())。所以,方法不能被导入。虽然 Map 没有导入,但是getAll()方法的返回类型是Map<String, ?>可以直接访问的。

如果你getAll()单独取喜欢,

Map<String, ?> map = preferences.getAll();

然后您将导入地图,否则您可以直接访问它。

于 2012-12-17T13:00:41.157 回答