如何获取 ListView 的所选项目的 ID,其中数据来自 Json 格式的服务器

how to get id of the selected items of ListView where the data is coming from sever in Json format

my JSON:
{
    "data": [
        {
            "identity": 1,
            "email": "riya@gmail.com"
        },
        {
            "identity": 2,
            "email": "riya@gmail.com"
        },
        {
            "identity": 3,
            "email": "priyanka@o2h.com"
        },
        {
            "identity": 4,
            "email": "priyanka@o2h.com"
        },
        {
            "identity": 5,
            "email": "abcd@gmail.com"
        },
        {
            "identity": 6,
            "email": "abcd@gmail.com"
        },
        {
            "identity": 7,
            "email": "abcd@gmail.com"
        },
        {
            "identity": 8,
            "email": "priya@gmail.com"
        },
        {
            "identity": 9,
            "email": "priya@gmail.com"
        },
        {
            "identity": 10,
            "email": "priya@gmail.com"
        },
        {
            "identity": 11,
            "email": "priya@gmail.com"
        },
        {
            "identity": 12,
            "email": "priya@gmail.com"
        },
        {
            "identity": 13,
            "email": "priya@gmail.com"
        },
        {
            "identity": 14,
            "email": "jaya@gmail.com"
        },
        {
            "identity": 15,
            "email": "jaya@gmail.com"
        },
        {
            "identity": 16,
            "email": "priyanka@o2h.com"
        },
        {
            "identity": 17,
            "email": "jaya@gmail.com"
        },
        {
            "identity": 18,
            "email": "kinjal@gmail.com"
        },
        {
            "identity": 19,
            "email": "kinjal@gmail.com"
        },
        {
            "identity": 20,
            "email": "kinjal@gmail.com"
        },
        {
            "identity": 21,
            "email": "priyankapatell@o2h.com"
        },
        {
            "identity": 22,
            "email": "priyankapatelle@o2h.com"
        },
        {
            "identity": 23,
            "email": "priyankapatelre@o2h.com"
        },
        {
            "identity": 24,
            "email": "priyankart@o2h.com"
        },
        {
            "identity": 25,
            "email": "priyankarthjjk@o2h.com"
        },
        {
            "identity": 26,
            "email": "priyajjk@o2h.com"
        },
        {
            "identity": 27,
            "email": "riya@gmail.com"
        },
        {
            "identity": 28,
            "email": "risha@gmail.com"
        },
        {
            "identity": 29,
            "email": "rishad@gmail.com"
        },
        {
            "identity": 30,
            "email": "rishaTiwari@gmail.com"
        },
        {
            "identity": 31,
            "email": "textview"
        },
        {
            "identity": 32,
            "email": "textw"
        },
        {
            "identity": 33,
            "email": "tetw"
        },
        {
            "identity": 34,
            "email": "Textdddd"
        },
        {
            "identity": 35,
            "email": "tevvtw"
        },
        {
            "identity": 36,
            "email": "Textdhdjdk"
        },
        {
            "identity": 37,
            "email": "TextVlfggfg"
        },
        {
            "identity": 38,
            "email": "TextViewllkk"
        },
        {
            "identity": 39,
            "email": "TextViewghjm"
        },
        {
            "identity": 40,
            "email": "Te"
        },
        {
            "identity": 41,
            "email": "TextView133"
        },
        {
            "identity": 42,
            "email": "TextViewjkgjk"
        },
        {
            "identity": 43,
            "email": "TextViewIhhh"
        },
        {
            "identity": 47,
            "email": "TextViewhskslsld"
        },
        {
            "identity": 48,
            "email": "TextViewakskks"
        },
        {
            "identity": 49,
            "email": "TextVisjskdldk"
        },
        {
            "identity": 50,
            "email": "TedudidoxtView"
        },
        {
            "identity": 51,
            "email": "TextViewhddkdk"
        }
    ]
}

第 1 步:从 JSON 数据映射中获取值 key:value => identity:email.

第 2 步:在 ListView 中显示电子邮件。

第 3 步:select 来自 ListView 的电子邮件。

第 4 步:在下一个 activity 显示 selected 电子邮件。

第 5 步:获取 selected 电子邮件的密钥。

现在请告诉我该怎么做? 我正在使用 volley 库来获取数据我能够在列表视图中显示电子邮件并将 selected ListView 放在下一个 activity 但我如何才能为我的 post 获取电子邮件的 ID要求 ?

  1. 覆盖 ListView 的 setOnitemClickListener
  2. 然后使用'Position'参数获取所选项目的id。

创建可序列化Class

public class DataClass implements Serializable {

    public int id;
    public String email;
}

创建数据列表Class

List<DataClass> selectedList;

将您的数据放入 selectedList

    listView.setOnItemClickListener(new OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> parent, View view, int 
        position,long arg3) {
               //add validation email is already selected
               DataClass data = new DataClass();
               data.email = list.get(position).email;
               data.id = list.get(position).Id;
               selectedList.add(data);
            }
        });

根据您的意愿

Bundle bundle = new Bundle();
bundle.putSerializable("value", selectedList);
intent.putExtras(bundle);

第二次Activity获取选定的电子邮件数据并执行Post请求

   @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.second);

        Intent intent = this.getIntent();
        Bundle bundle = intent.getExtras();

        List<DataClass> datas=
               (List<DataClass>)bundle.getSerializable("value");
        doPostRequest(datas) // you can get your id's and email's on selected on list
    }

将此数组列表设置为列表视图,列表视图的所选项目使用列表视图位置从列表中获取电子邮件。

示例: 电子邮件 = list.get(i).getEmail();

 Arraylist<Pojo> list=new Arraylist();
    JsonArray jsonArray=new JsonArray("data");
    for(int i=0;i<jsonArray;i++)
    {
       JsonObject jobject=jsonArray.getJsonObject(i);
       String identity=jobject.getString("identity");
       String email=jobject.getString("email");
       Pojo pojo=new Pojo(identity,email);
       list.add(pojo)
    }

从列表视图中获取选定的项目 ID,像下面这样尝试,

    listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
    @Override
    public void onItemClick(AdapterView<?> parent, View view, int position, long id) {

       // get you clicked item posion here
       Log.e("USERID",list.get(position).getId+"");
       Log.e("USEREMAIL",list.get(position).getEmail+"");
    }
});

希望对你有所帮助,祝你好运。