Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 从McClickListener检索数据_Android_Json_Arraylist_Onclick_Onitemclicklistener - Fatal编程技术网

Android 从McClickListener检索数据

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

我必须读取json文件,有两个字段:name和id_name。我创建了一个数组列表。用户只能看到名称。当用户单击名称时,我必须获取id。我只向你们介绍了AssyncTask后台程序的一部分。此外,我创建了带有两个参数Name和id的类名

请帮帮我。这是我的密码

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