Here s what I m trying to do: - Retrieve a Map of key-value pairs from a SharedPreferences object (User#, Name) - write those key-value pairs into an ArrayList such that I can - use them to populate a ListView with each row containing BOTH the key and the value like so:
用户1 - Joe R.
用户2 - Frank B。
等等
UPDATE: so after taking a good long look at the SimpleAdapter class, and talking with some wiser more knowledgable folks - I m a lot closer than I was... but still not all the way there.
在座各位:
public class LogHistory extends ListActivity {
static final ArrayList<HashMap<String, String>> list = new ArrayList<HashMap<String, String>>();
private static final String KEY = null;
private static final String VALUE = null;
public void onCreate(Bundle b) {
super.onCreate(b);
setContentView(R.layout.log_history);
SharedPreferences logPrefs = getSharedPreferences(LoginField.PREFSNAME, 0);
Map<String, ?> logMap = logPrefs.getAll();
for (Map.Entry<String, ?> e : logMap.entrySet()) {
HashMap<String, String> row = new HashMap<String, String>();
String mKey = e.getKey();
String mValue = (String) e.getValue();
row.put(KEY, mKey);
row.put(VALUE, mValue);
list.add(row);
// FOR DEBUGGING PURPOSES
makeToast(mKey);
makeToast(mValue);
}
SimpleAdapter adapter = new SimpleAdapter(
this,
list,
R.layout.list_item,
new String[] { KEY, VALUE },
new int[] {R.id.item1, R.id.item2}
);
setListAdapter(adapter);
这种工作——但只有一半——我获得的结果是在
HOWEVER, the make Toast function Return the proper Value for both the KEY and the VALUE - so the problem must be in the briefAdapter methods?
援助将是巨大的——家庭工作是一夜的!