Извлечение строк из элементов ListView, добавление символов?

У меня есть listView, который отображает записи из базы данных, и setOnClickListener() для элементов, которые извлекают текст из списка и добавляют String в качестве дополнительного для Intent.

Это все работает нормально, мой список отображает записи с текстом, такими как, город, город, деревня, и когда я добавляю новые элементы, это также работает отлично. Моя проблема заключается в том, что когда я использую тост для отображения строки, переданной намерению, добавляются некоторые дополнительные символы

например, я нажимаю на элемент списка "город", и на тосте отображается "{pg=town}", как мне остановить это / почему это происходит?

Код для адаптера и 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();

                }

        });

1 ответ

Решение

Это потому, что ваш список - это список HashMap. Пытаться

String title = ((HashMap<String,String>) list.getItemAtPosition(position)).get("pg");
Другие вопросы по тегам