Android 从McClickListener检索数据
我必须读取json文件,有两个字段:name和id_name。我创建了一个数组列表。用户只能看到名称。当用户单击名称时,我必须获取id。我只向你们介绍了AssyncTask后台程序的一部分。此外,我创建了带有两个参数Name和id的类名 请帮帮我。这是我的密码Android 从McClickListener检索数据,android,json,arraylist,onclick,onitemclicklistener,Android,Json,Arraylist,Onclick,Onitemclicklistener,我必须读取json文件,有两个字段:name和id_name。我创建了一个数组列表。用户只能看到名称。当用户单击名称时,我必须获取id。我只向你们介绍了AssyncTask后台程序的一部分。此外,我创建了带有两个参数Name和id的类名 请帮帮我。这是我的密码 protected ArrayList<Name> doInBackground(String... params) { ArrayList<Name> nameList = new Ar
protected ArrayList<Name> doInBackground(String... params) {
ArrayList<Name> nameList = new ArrayList<>();
String result = "";
......
for (int i = 0; i < rootArray.length(); i++) {
JSONObject nameObject = rootArray.getJSONObject(i);
String name = nameObject.getString("name");
String id = nameObject.getString("id_name");
nameList.add(new NAME(name, id));
}
return nameList;
}
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
String my_id = adapter.getItem(position).toString();
}
});
受保护的ArrayList doInBackground(字符串…参数){
ArrayList nameList=新的ArrayList();
字符串结果=”;
......
对于(int i=0;i
非常感谢。listView.setOnItemClickListener(新的AdapterView.OnItemClickListener(){
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
TextView tv_ID=(TextView)view.findViewById(R.id.tv_id);//Check your xml and set proper ID
String my_id =tv_ID.getText().toString();
Toast.makeText(CurrentActivity.this, my_id , Toast.LENGTH_SHORT).show();
}
});
public void onItemClick(AdapterView父对象、视图、整型位置、长id){
TextView tv_ID=(TextView)view.findViewById(R.ID.tv_ID);//检查xml并设置正确的ID
字符串my_id=tv_id.getText().toString();
Toast.makeText(CurrentActivity.this,my_id,Toast.LENGTH_SHORT).show();
}
});
声明此活动的全局数组,如
ArrayList<Name> nameList = new ArrayList<>();
ArrayList nameList=new ArrayList();
然后
protected ArrayList<Name> doInBackground(String... params) {
String result = "";
......
if(nameList != null)
nameList.clear();
for (int i = 0; i < rootArray.length(); i++) {
JSONObject nameObject = rootArray.getJSONObject(i);
String name = nameObject.getString("name");
String id = nameObject.getString("id_name");
nameList.add(new NAME(name, id));
}
return nameList;
}
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
Name name = nameList.get(position);
String id = name.getId();
String id = name.getName();
}
});
受保护的ArrayList doInBackground(字符串…参数){
字符串结果=”;
......
如果(名称列表!=null)
nameList.clear();
对于(int i=0;i
注意:如果您没有用于名称模型的getter方法,请创建getter方法。试试看
获取(位置);
而不是
适配器。获取(位置) 我认为他没有xml格式的id文本视图。他只显示了名字textview。@Dharbirsingh那么你的逻辑正确谢谢。С我可以就这个话题再问你一个问题吗?我的应用程序的下一步是检索Json文件中的四个变量(在本例中,所有变量都是字符),并将每个变量传递给另一个intent。如何将4的值传递给onPostExecute?据我所知,我可以在后期执行吗?谢谢你试过我的答案了吗?是的,谢谢。С我可以就这个话题再问你一个问题吗?我的应用程序的下一步是检索Json文件中的四个变量(在本例中,所有变量都是字符),并将每个变量传递给另一个intent。如何将4的值传递给onPostExecute?当我不理解时,我可以在执行后执行意图吗?谢谢是的,谢谢。С我可以就这个话题再问你一个问题吗?我的应用程序的下一步是检索Json文件中的四个变量(在本例中,所有变量都是字符),并将每个变量传递给另一个intent。如何将4的值传递给onPostExecute?当我不理解时,我可以在执行后执行意图吗?感谢you@AlexeyShpaner是的,您可以通过,但当您想要打开下一个活动时,您可以通过intent。如果你的问题解决了,请接受我的回答。当然谢谢。我不知道;我不明白如何将四个变量的值从doInBackground传递到onPostExecute?你能给我举个例子吗?制作4个全局变量,然后在doInBackground中赋值,在postExecute中访问。希望它能帮助你。如果它没有帮助,那么请将你的类代码粘贴到这里,我现在会尝试,但什么样的数据是?我必须在AsyncTask中编写:公共类下载扩展了AsyncTask