android onitemclicklistener 参数,android – OnItemClickListener从模型中获取数据

我是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 districts;

public List getDistricts(){

return districts;

}

public void setDistrictList(List districts){

this.districts = districts;

}

}

Adapter类

public class DistrictAdapter extends ArrayAdapter{

int resource;

String response;

Context context;

private LayoutInflater dInflater;

public DistrictAdapter(Context context, int resource, List 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 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();

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 {

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();

标签:onitemclicklistener,android

来源: https://codeday.me/bug/20190721/1495055.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/351355.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java 8:对速度3.0.1“森林”流ORM的更深入了解

沿着这条路 我一直在为开源项目Speedment &#xff08;它是Stream ORM Java Toolkit和Runtime&#xff09;做出贡献&#xff0c;并且刚刚发布了一个新的主要版本3.0.1“ Forest”。 版本的发布以加利福尼亚州帕洛阿尔托的大街小巷命名&#xff0c;大多数贡献者都在这里工作。 沿…

读《人月神话》有感

翻开《人月神话》这本书&#xff0c;我感觉看这本与我们学的相关的书不相似&#xff0c;书中用了很多的形象的比喻&#xff0c;来阐述项目管理中的一些问题&#xff0c;让人以很轻松愉悦心态去阅读。书开始就形象有有趣的把软件危机比作&#xff1a;焦油坑。让我感觉到&#xf…

android 弹窗in,Android监听程序处于INACTIVITY(未操作状态)时间并作出相应的操作

最近遇到一个需求&#xff0c;app五分钟未操作需要返回到主页面。一开始就想到去监听onTouch和onClick事件&#xff0c;这个方法看似可行&#xff0c;但是实际操作起来还是很繁琐的&#xff0c;一不小心就达不到需要的效果。然后就果断放弃了。后来看api发现activity中有一个叫…

用gdb调试nasm汇编程序

对于一个程序员来说&#xff0c;调试是很重要的&#xff0c;可以节约找到bug的时间&#xff0c;不过以前在linux下一直是对c进行调试的&#xff0c;今天突然要对汇编进行调试还真不知道怎么调&#xff0c;特别是对linux下调试汇编程序基本没搞过。记得以前上课学masm时&#xf…

android 防腾讯新闻标题栏,仿腾讯视频android客户端上方的标题栏

如图&#xff0c;上方的导航栏是不是很酷&#xff0c;首先它本身是可以滑动的&#xff0c;然后右侧有一个可以查看所有Tab的按钮&#xff0c;然后他和下方的ViewPager还是联动的&#xff0c;可以通过点击它切换ViewPager&#xff0c;并且ViewPager滑动&#xff0c;它也会随着改…

链接克隆 完整克隆_深入克隆

链接克隆 完整克隆在继续克隆概念之前&#xff0c;让我们用对象创建概念刷新基础知识。 使用new运算符创建对象时&#xff0c;对象将在堆中获取内存分配。 堆中的对象创建 在Java中&#xff0c;理想情况下仅通过引用变量修改对象&#xff0c;即仅复制对象的内存地址&#xff…

linux系统调用和库函数调用的区别

Linux下对文件操作有两种方式&#xff1a;系统调用&#xff08;system call&#xff09;和库函数调用&#xff08;Library functions&#xff09;。可以参考《Linux程序设计》&#xff08;英文原版为《Beginning Linux Programming》&#xff0c;作者是Neil Matthew和Richard S…

如果您在2016年编写过Java代码-这是您不容错过的趋势

2016年最有趣的Java相关主题 关于代码&#xff0c;有很多热门话题&#xff0c;而要跟上所有事情&#xff0c;这是一项全职的工作。 如果您想知道如何从谷壳中分离出小麦&#xff0c;我们已经为您完成了工作。 在下面的文章中&#xff0c;我们将介绍2016年最热门的内容&#x…

第三届蓝桥杯省赛---第39级台阶

第39级台阶 小明刚刚看完电影《第39级台阶》&#xff0c;离开电影院的时候&#xff0c;他数了数礼堂前的台阶数&#xff0c;恰好是39级! 站在台阶前&#xff0c;他突然又想着一个问题&#xff1a; 如果我每一步只能迈上1个或2个台阶。先迈左脚&#xff0c;然后左右交替&#xf…

android 视图覆盖,如何在Android中添加覆盖视图超过其他视图?

设为背景&#xff01;只是开玩笑…你需要的是把你的意见放在一个RelativeLayout里.会有什么工作&#xff1a;xmlns:android"http://schemas.android.com/apk/res/android"android:layout_width"fill_parent"android:layout_height"fill_parent"&…

Linux内核源码分析方法

一、内核源码之我见 Linux内核代码的庞大令不少人“望而生畏”&#xff0c;也正因为如此&#xff0c;使得人们对Linux的了解仅处于泛泛的层次。如果想透析Linux&#xff0c;深入操作系统的本质&#xff0c;阅读内核源码是最有效的途径。我们都知道&#xff0c;想成为优秀的程序…

深度学习框架Keras介绍及实战

Keras 是一个用 Python 编写的高级神经网络 API&#xff0c;它能够以 TensorFlow, CNTK, 或者 Theano 作为后端运行。Keras 的开发重点是支持快速的实验。能够以最小的时延把你的想法转换为实验结果&#xff0c;是做好研究的关键。 本文以Kaggle上的项目:IMDB影评情感分析为例,…

操作系统--处理机调度

4 处理机调度 4.1 调度类型 操作系统必须为多个进程的竞争请求分配计算机资源。处理机调度的任务就是选出待分派的作业或进程&#xff0c;为之分配处理机。 为了便于处理机调度管理&#xff0c;通常在处理机调度中采用分级调度方式&#xff0c;其中包括以下3级调度&#xff1a;…

permgen_什么是PermGen泄漏?

permgen接下来是对Java应用程序中特定类型的内存问题的实用介绍。 即–我们将分析导致java.lang.OutOfMemoryError&#xff1a;PermGen空间的错误 堆栈跟踪中的症状。 首先&#xff0c;我们将介绍理解该主题所需的核心概念&#xff0c;并解释什么是对象&#xff0c;类&#…

TP、PHP同域不同子级域名共享Session、单点登录

TP、PHP同域不同子级域名共享Session、单点登录 目的&#xff1a; 为了部署同个域名下不同子级域名共享会话&#xff0c;从而实现单点登录的问题&#xff0c;一处登录&#xff0c;同域处处子系统即可以实现自动登录。 PHP支持通过设置cookie使得同域不同子域共享SESSION 1. 通…

html语言书写注意事项,HTML注意事项(学习笔记)

1、在所有浏览器中都是有效的&#xff0c;但使用 其实是更长远的保障。类似的标签也一样2、标签最好用小写&#xff0c;未来的版本中可能强制用小写3、标签属性始终为属性值加引号属性值应该始终被包括在引号内。双引号是最常用的&#xff0c;不过使用单引号也没有问题。在某些…

UTF-8、GB2312、GB18030、GBK和BIG5等字符集编码范围的具体说明

一预备知识 1&#xff0c;字符&#xff1a;字符是抽象的最小文本单位。 它没有固定的形状&#xff08;可能是一个字形&#xff09;&#xff0c;而且没有值。 “A”是一个字符&#xff0c;“”&#xff08;德国、法国和许多其他欧洲国家通用货币的标志&#xff09;也是一个字…

使用Forge,WildFly Swarm和Arquillian开发微服务

在本文中&#xff0c;我们将看到如何使用WildFly Swarm和Forge开发微服务&#xff0c;以及如何使用Arquillian和Rest Assured对其进行测试。 WildFly Swarm提供了一种创新的方法来打包和运行Java EE应用程序&#xff0c;方法是将它们与足够的服务器运行时一起打包以“ java -j…

html页面加载时触发的方法,在页面加载时触发onchange html事件

好的&#xff0c;我在select字段上有一个onchange事件。它现在很棒。当下拉“网络”更改时&#xff0c;它会刷新第二个下拉列表。我还希望顶部的ajax代码在页面加载和onchange上触发&#xff0c;以便填充第二个列表。这是因为它在编辑页面上。这是使用第一个的ajax调用function…

PYTHON-进阶-编码处理小结

开始 用python处理中文时&#xff0c;读取文件或消息&#xff0c;http参数等等 一运行&#xff0c;发现乱码(字符串处理&#xff0c;读写文件&#xff0c;print) 然后&#xff0c;大多数人的做法是&#xff0c;调用encode/decode进行调试&#xff0c;并没有明确思考为何出现乱码…