1

jsonからリストビューにデータを取得します

for (int i = 0; i < following.length(); i++) {
                JSONObject c = following.getJSONObject(i);

                // Storing each json item in variable
                String nama = c.getString(KEY_NAMA);
                String instansi = c.getString(KEY_INSTANSI);
                String status = c.getString(KEY_STATUS);
                id_user = c.getString(KEY_ID_USER);

                // creating new HashMap
                HashMap<String, String> map = new HashMap<String, String>();

                // adding each child node to HashMap key => value
                map.put(KEY_NAMA, nama);
                map.put(KEY_INSTANSI, instansi);
                map.put(KEY_STATUS, status);
                map.put(KEY_ID_USER, id_user);
                // adding HashList to ArrayList
                followingList.add(map);

            }

クリック時のリストビューの場合のアクション

list = (ListView) activity.findViewById(R.id.listView1);
        // Getting adapter by passing xml data ArrayList
        adapter1 = new LazyAdapter(activity, followingList);
        list.setAdapter(adapter1);

        list.setOnItemClickListener(new OnItemClickListener() {

            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                Intent profil = new Intent(activity.getApplicationContext(),
                        ProfilFollower.class);
                profil.putExtra("id_user", id_user);
                profil.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
                activity.startActivity(profil);
                // Closing dashboard screen
                activity.finish();
            }
        }); 

リスト ビューから id_user を取得して、目的のために id_user パラメータをクリックして送信する方法についての私の質問

4

3 に答える 3

2

ユーザーが ListView 行をクリックすると、HashMapid_userから次のように取得できます。followingList

public void onItemClick(AdapterView<?> parent, View view, int position, long id){
    if(followingList.size()>0){
      HashMap<String, String> selected_user_info=followingList.get(position);
      String str_user_id=selected_user_info.get(KEY_ID_USER);
      //... do your work here
    }
}
于 2013-05-12T08:31:49.583 に答える
0

以下を使用できます

onItemClick(params) メソッドで

  Intent profil = new Intent(ActivityName.this,
                   ProfilFollower.class);
  profil.putExtra("id_user",      
  followingList.get(position).map.get(KEY_ID_USER).toString());  
  //map.get(KEY_ID_USER) where KEY_ID_USER is the key 

また宣言する

     HashMap<String, String> map = new HashMap<String, String>();

アクティビティ クラス内の onCreate() の前

この条件 if(followingList.size()>=position) も使用してください。条件が必要な理由を知るには、ρяσσρєя K's answer のコメントを確認してください

また、以下のリンクを確認し、コモンズウェアで回答してください。getApplicationContext() の代わりに Activity コンテキストを使用する

アクティビティ コンテキストまたはアプリケーション コンテキストをいつ呼び出すか?

于 2013-05-12T08:32:07.207 に答える
0

class を使用して、of classCollectionを使用して特定のリスト行の値をディスパッチできます。そして、それを次のように変換できます。次に、クリックしたリスト行の各値にアクセスできます。values()CollectionArrayList

サンプルコード。

Collection<Object> str = followingList.get(position).values();
ArrayList<Object> al1 = new ArrayList<Object>(str);
String idUser = al1.get(id_user).toString(); // if your id_user has global access. 
//Otherwise you could use something al1.get(0).toString() like this. 
Intent profil = new Intent(ActivityName.this,
                    ProfilFollower.class);
profil.putExtra("id_user", idUser);

これがお役に立てば幸いです。

于 2013-05-12T08:50:06.533 に答える