android–OnItemClickListener从模型中获取数据

android–OnItemClickListener从模型中获取数据,第1张

概述我是Android开发的新手,我正在尝试构建一个ListView,它使用gson从Web服务获取数据.我有一个模型类,一个列表类,一个适配器类和活动类.该列表工作正常,它获得了数据,现在我想将OnItemClickListener集成到它并将数据传递给第二个活动.我想得到项ID(DistrictId)并将其传递给下一个Act

我是Android开发的新手,我正在尝试构建一个ListVIEw,它使用gson从Web服务获取数据.我有一个模型类,一个列表类,一个适配器类和活动类.

该列表工作正常,它获得了数据,现在我想将OnItemClickListener集成到它并将数据传递给第二个活动.我想得到项ID(districtID)并将其传递给下一个Activity(ListVIEw)而不是行ID.如果有人可以向我展示光明,那就太好了……因为文档不是很清楚,因为我是新手.

以下是我的代码.

模型类

package com.sample.myapp;public class districtModel {private String ID;private String districtname;public String getdistrictID() {    return ID;}public voID setID(String ID) {    this.ID = ID;}public String getdistrictname(){    return districtname;}public voID setdistrictEN(String districtname){    this.districtname = districtname;}}

List类

public class districtList {private List<districtModel> districts;public List<districtModel> getdistricts(){    return districts;}public voID setdistrictList(List<districtModel> districts){    this.districts = districts;}} 

Adapter类

public class districtAdapter extends ArrayAdapter<districtModel>{int resource;String response;Context context;private LayoutInflater dInflater;public districtAdapter(Context context, int resource, List<districtModel> objects) {        super(context, resource, objects);        this.resource = resource;        dInflater = LayoutInflater.from(context);}static class VIEwHolder {    TextVIEw Title;}public VIEw getVIEw(int position, VIEw convertVIEw, VIEwGroup parent){    VIEwHolder holder;    //Get the current location object    districtModel lm = (districtModel) getItem(position);    //Inflate the vIEw    if(convertVIEw==null)    {        convertVIEw = dInflater.inflate(R.layout.item_district, null);        holder = new VIEwHolder();        holder.Title = (TextVIEw) convertVIEw                .findVIEwByID(R.ID.district_name);        convertVIEw.setTag(holder);    }    else    {        holder = (VIEwHolder) convertVIEw.getTag();    }    holder.Title.setText(lm.getdistrictname());    return convertVIEw;}}

活动类

public class districtListActivity extends Activity{LocationManager lm;ArrayList<districtModel> districtArray = null;districtAdapter districtAdapter;districtList List;ListVIEw lv;public voID onCreate(Bundle savedInstanceState){    super.onCreate(savedInstanceState);    setContentVIEw(R.layout.districtList_layout);    lv = (ListVIEw) findVIEwByID(R.ID.List_district);    districtArray = new ArrayList<districtModel>();    districtAdapter = new districtAdapter(districtListActivity.this, R.layout.item_district, districtArray);    lv.setTextFilterEnabled(true);            lv.setAdapter(districtAdapter);            try {                new districtSync().execute("http://aws.something.com/service");            } catch(Exception e) {}    lv.setonItemClickListener(new OnItemClickListener() {                @OverrIDe                public voID onItemClick(AdapterVIEw<?> parent, VIEw convertVIEw, int position, long ID) {                AlertDialog.Builder adb=new AlertDialog.Builder(districtListActivity.this);                adb.setTitle("LVSelectedItemExample");                adb.setMessage("Selected Item is = "+(lv.getItemIDAtposition(position)));                adb.setPositivebutton("Ok", null);                adb.show();                }        }); **//i'd like to get the districtID from the Json data.**}private class districtSync extends AsyncTask<String, Integer, districtList> {    protected districtList doInBackground(String... urls) {        districtList List = null;        int count = urls.length;        for (int i = 0; i < count; i++) {            try {                           // ntar diganti service                RestClIEnt clIEnt = new RestClIEnt(urls[i]);                try {                    clIEnt.Execute(RequestMethod.GET);                } catch (Exception e) {                    e.printstacktrace();                }                String Json = clIEnt.getResponse();                List = new Gson().fromJson(Json, districtList.class);                //            } catch(Exception e) {}        }        return List;    }    protected voID onProgressUpdate(Integer... progress) {    }    protected voID onPostExecute(districtList disList) {        for(districtModel lm : disList.getdistricts())        {            districtArray.add(lm);        }        districtAdapter.notifyDataSetChanged();    }}}

为了测试目的,现在我点击它将显示行ID的行,所以我知道onclick监听器工作,但我只是想让它抓住我的districtID所以我可以用它来传递给下一个活动.

非常感谢.

解决方法:

(从我的头脑中)试试这个:

((districtModel)lv.getAdapter().getItem(position)).getdistrictID();
总结

以上是内存溢出为你收集整理的android – OnItemClickListener从模型中获取数据全部内容,希望文章能够帮你解决android – OnItemClickListener从模型中获取数据所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1115928.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-29
下一篇 2022-05-29

发表评论

登录后才能评论

评论列表(0条)

保存