8

アダプターの位置から値を取得する方法、私は以下のコードを持っています:

CategoriesXmlParser categoryXmlParser = new CategoriesXmlParser();
List<HashMap<String, Object>> categories = null;

try {
  categories = categoryXmlParser.parse(reader);
} catch (Exception e) {
  Log.d("Exception", e.toString());
}

String[] from = { "name", "image" };
int[] to = { R.id.nama_category, R.id.logo_category };

final SimpleAdapter adapter = new SimpleAdapter(getBaseContext(),
                    categories, R.layout.per_item_category, from, to);

mListView.setOnItemClickListener(new OnItemClickListener() {
  public void onItemClick(AdapterView<?> parent, View view,
                        int position, long id) {
    Object obj = mListView.getAdapter().getItem(position);
    String value = obj.toString();
    Log.d("MyLog", "Value is: "+value);
    String name = // how code to get name value.
  }
});

MyLog の logcat でログを見ると、次のようになります。

値: {position=12, image_path= http://192.168.103.121/xml/icon.png , link= http://192.168.103.121/xml/category.php?kat_id=13 , name=Category 13}

だから私の質問は、名前から値を取得して変数文字列名に保存したいのですが、文字列名で「カテゴリ13」だけを取得したいのです。別のアクティビティに渡したいからです。

4

6 に答える 6

35

blablabla.put("name", "value")?? のように、ハッシュマップでオブジェクトを作成したようです。もし、そうなら。これを試して:

mListView.setOnItemClickListener(new OnItemClickListener() {
    public void onItemClick(AdapterView<?> parent, View view,
            int position, long id) {
        Object obj = mListView.getAdapter().getItem(position);
        String value = obj.toString();
        Log.d("MyLog", "Value is: "+value);
        String name = // how code to get name value.
    }
});

への変更:

mListView.setOnItemClickListener(new OnItemClickListener() {
    public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
        HashMap<String, Object> obj = (HashMap<String, Object>) adapter.getItem(position);
            String name = (String) obj.get("name");
            Log.d("Yourtag", name);
    }
});
于 2013-01-18T20:17:18.797 に答える
6
value = value.substring(value.indexOf("name=")+5,value.length()-1);
于 2013-01-18T06:12:22.537 に答える