5

解析された JSON からのデータを持つ ListView があります。だから、これは私のサンプルコードです:

ArrayList<HashMap<String, String>> myList = new ArrayList<HashMap<String, String>>();

    /**
     * parsing JSON...
     * ...
     * ...
     * ...
     */

ListAdapter adapter = new SimpleAdapter(this, myList, R.layout.s_layout, new String[]{NAME, TEXT}, new int[]{R.id.name, R.id.text});
    setListAdapter(adapter);

lv.setOnItemClickListener(new OnItemClickListener(){

        public void onItemClick(AdapterView<?> parent, View view, int position, long id){


            String inName = ((TextView) view.findViewById(R.id.name)).getText().toString();
            String inText = ((TextView) view.findViewById(R.id.text)).getText().toString();


            Intent intent = new Intent(getApplicationContext(), StaffProfileActivity.class);

            intent.putExtra("staff_name", inName);
            intent.putExtra("staff_desc", inText);
            startActivity(intent);
       }
});

私の問題は、使用せずにデータを Intent に渡すにはどうすればよいかということです

String inName = ((TextView) view.findViewById(R.id.name)).getText().toString(); 

つまり、ListView からデータを取得して意図に与える方法は?

4

2 に答える 2

6

adapter.get(position)HashMap<String, String>選択した要素のを返します。そして、List<T>代わりに定義を使用しますArrayList<T>

于 2013-02-28T08:18:34.600 に答える
3

ドキュメントから

public abstract void onItemClick (AdapterView 親、View ビュー、int 位置、long id)

この AdapterView の項目がクリックされたときに呼び出されるコールバック メソッド。実装者は、選択した項目に関連付けられたデータにアクセスする必要がある場合、getItemAtPosition(position) を呼び出すことができます。

onItemClick で要素を取得できます:

  HashMap<String, String> elt = myList.getItemAtPosition(position);

次に、elt から inName と inText の値を取得します。

于 2013-02-28T08:32:51.073 に答える