0

我有一个 listView 显示来自数据库的记录,还有一个 setOnClickListener() 用于从列表中提取文本并将字符串添加为 Intent 的额外项的项目。

这一切都很好,我的列表显示带有文本的记录,例如城市,城镇,村庄,当我添加新项目时,这也很好。我的问题在于当我使用 toast 显示传递给意图的字符串时,添加了一些额外的字符

例如,我单击列表项“town”,吐司显示“{pg=town}”我如何阻止这种情况发生/为什么会发生?

Adapter 和 onClick 的代码如下。

提前致谢。

public void listChange() {
        Cursor c = database.rawQuery("select * from Towns", null);
        c.moveToFirst();
        primeTownlist = new ArrayList<HashMap<String, String>>();
        while (!c.isAfterLast()) {
            primeTownMap = new HashMap<String, String>();
            primeTownMap.put("pg", c.getString(1));
            primeTownlist.add(primeTownMap);
            c.moveToNext();
        }
        c.close();
        primeGoalAdapter = new SimpleAdapter(this, primeTownlist, R.layout.primeTowns,
                new String[] { "pg" }, new int[] {R.id.bt_primeTown});
        primeTowns.setAdapter(primeTownAdapter);
    }

primeTowns.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> list, View view, int position, long id) {
                String title = list.getItemAtPosition(position).toString();
                Intent i = new Intent("com.example.towns.town");
                i.putExtra("town", title);
                startActivity(i);
                Toast.makeText(getApplicationContext(),
                        (title), Toast.LENGTH_SHORT).show();

                }

        });
4

1 回答 1

0

那是因为您的列表是 HashMap 的列表。尝试

String title = ((HashMap<String,String>) list.getItemAtPosition(position)).get("pg");
于 2013-05-28T23:19:02.390 回答