简体   繁体   English

如何获取Json格式的数据来自服务器的ListView选定项的ID

[英]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"
        }
    ]
}

step-1: get value from JSON data map it key:value => identity:email. 步骤1:从JSON数据中获取值,将其映射为key:value => identity:email。

step-2: show email in ListView. 步骤2:在ListView中显示电子邮件。

step-3:select emails from ListView. 步骤3:从ListView中选择电子邮件。

step-4:show selected emails on next activity. 步骤4:在下一个活动中显示选定的电子邮件。

step-5: get key of the selected emails. 步骤5:获取所选电子邮件的密钥。

Now please tell me how can I do that? 现在,请告诉我该怎么做? I am using volley library to get data I am able to show emails in the list view and also putting selected ListView on next activity but how can I get ids for emails for my post request ? 我正在使用排球库获取数据,既可以在列表视图中显示电子邮件,也可以将选定的ListView放在下一个活动中,但是如何为我的帖子请求获取电子邮件的ID?

Create Serializable Class 创建可序列化的类

public class DataClass implements Serializable {

    public int id;
    public String email;
}

create list of DataClass 创建数据类列表

List<DataClass> selectedList;

Put your data on 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);
            }
        });

On your intent 你的意图

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

On Second Activity Get selected emails data and do Post Request 在第二次活动中,获取选定的电子邮件数据并执行发布请求

   @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
    }
  1. override setOnitemClickListener of ListView 覆盖ListView的setOnitemClickListener
  2. Then use 'Position' parameter to get id of selected item. 然后使用“位置”参数获取所选项目的ID。

Get selected Item ID from listview,Try below like this, 从列表视图中获取选定的商品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+"");
    }
});

I hope this may help you,All the best. 希望对您有所帮助。

Set this array list to list view and item selected of list view get email from list using list view position. 将此数组列表设置为列表视图,列表视图中选择的项目使用列表视图位置从列表中获取电子邮件。

Example : email = list.get(i).getEmail(); 示例: email = 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)
    }

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM