Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/213.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 从列表视图中获取数据单击位置_Android - Fatal编程技术网

Android 从列表视图中获取数据单击位置

Android 从列表视图中获取数据单击位置,android,Android,我使用以下方法从远程JSON文件填充listview: private class GetHttpResponseReuniones extends AsyncTask<Void, Void, Void> { public Context context; String ResultHolder; List<SubastasHome> subastasHomeList; public GetHttpResponseReunion

我使用以下方法从远程JSON文件填充listview:

private class GetHttpResponseReuniones extends AsyncTask<Void, Void, Void>
{
    public Context context;




    String ResultHolder;

    List<SubastasHome> subastasHomeList;

    public GetHttpResponseReuniones(Context context)
    {
        this.context = context;
    }

    @Override
    protected void onPreExecute()
    {
        super.onPreExecute();
    }

    @Override
    protected Void doInBackground(Void... arg0)
    {




        String URLFinal = ServerURLReuniones;



        HttpServicesClass httpServiceObject = new HttpServicesClass(URLFinal);
        try
        {
            httpServiceObject.ExecutePostRequest();

            if(httpServiceObject.getResponseCode() == 200)
            {
                ResultHolder = httpServiceObject.getResponse();

                if(ResultHolder != null)
                {
                    JSONArray jsonArray = null;

                    try {
                        jsonArray = new JSONArray(ResultHolder);

                        JSONObject jsonObject;

                        SubastasHome SubastasHome;

                        subastasHomeList = new ArrayList<SubastasHome>();

                        for(int i=0; i<jsonArray.length(); i++)
                        {
                            SubastasHome = new SubastasHome();

                            jsonObject = jsonArray.getJSONObject(i);

                            Log.d("SUBASTAS ","SUBASTAS:"+jsonObject);

                            SubastasHome.id_subasta = jsonObject.getString("id_subasta");
                            SubastasHome.marca = jsonObject.getString("marca");
                            SubastasHome.modelo = jsonObject.getString("modelo");
                            SubastasHome.ano = jsonObject.getString("ano");
                            SubastasHome.foto = jsonObject.getString("foto");
                            SubastasHome.referencia = jsonObject.getString("referencia");
                            SubastasHome.titulo = jsonObject.getString("titulo");
                            SubastasHome.descripcion = jsonObject.getString("descripcion");
                            SubastasHome.empieza = jsonObject.getString("empieza");
                            SubastasHome.termina = jsonObject.getString("termina");
                            SubastasHome.comprador = jsonObject.getString("comprador");
                            SubastasHome.vendedor = jsonObject.getString("vendedor");
                            SubastasHome.puja_ganadora = jsonObject.getString("puja_ganadora");
                            SubastasHome.generacion = jsonObject.getString("generacion");
                            SubastasHome.serie = jsonObject.getString("serie");
                            SubastasHome.motor = jsonObject.getString("motor");
                            SubastasHome.total_pujas = jsonObject.getString("total_pujas");
                            SubastasHome.mejor_precio = jsonObject.getString("mejor_precio");
                            // cumpleanos.SubjectName2 = jsonObject.getString("subjects2");
                            String termina = jsonObject.getString("termina");



                                    //COUNTDOWN here


                                    DateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
                            String datetermina = termina;
                            try {
                                date1 = (Date) formatter.parse(datetermina);
                            } catch (ParseException e) {
                                e.printStackTrace();
                            }

                            date2 = Calendar.getInstance().getTime();

                            diff = date1.getTime() - date2.getTime();
                            Log.d("TERMINA","termina:date diff "+diff);


                                    long dias = TimeUnit.HOURS.toDays(TimeUnit.MILLISECONDS.toHours(diff));

                                    long horas = (TimeUnit.MILLISECONDS.toHours(diff) - TimeUnit.DAYS.toHours(TimeUnit.MILLISECONDS.toDays(diff)));

                                    long mins =(TimeUnit.MILLISECONDS.toMinutes(diff) - TimeUnit.HOURS.toMinutes(TimeUnit.MILLISECONDS.toHours(diff)));

                                    long seconds = ((TimeUnit.MILLISECONDS.toSeconds(diff) - TimeUnit.MINUTES.toSeconds(TimeUnit.MILLISECONDS.toMinutes(diff))));

                                    SubastasHome.termina = dias+"d "+horas+"h "+mins+"m ";

                                    if (dias < 0 && horas <0 && mins < 0){
                                        SubastasHome.termina = "Finalizada";
                                    }




                            subastasHomeList.add(SubastasHome);
                        }
                    }
                    catch (JSONException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    }
                }
            }
            else
            {
                Toast.makeText(context, httpServiceObject.getErrorMessage(), Toast.LENGTH_SHORT).show();
            }
        }
        catch (Exception e)
        {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return null;
    }

    @Override
    protected void onPostExecute(Void result)

    {


        progressBarSubject.setVisibility(View.GONE);

        //CumplesListView.setVisibility(View.VISIBLE);

        if(subastasHomeList != null)
        {
            ListAdapterClassSubastasHome adapter = new ListAdapterClassSubastasHome(subastasHomeList, context);

            SubastasListView.setAdapter(adapter);




        }
    }
}
私有类GetHttpResponseReunions扩展异步任务
{
公共语境;
字符串结果文件夹;
列出亚视距表;
公共GetHttpResponseReunions(上下文)
{
this.context=上下文;
}
@凌驾
受保护的void onPreExecute()
{
super.onPreExecute();
}
@凌驾
受保护的Void doInBackground(Void…arg0)
{
字符串URLFinal=serverurlreunions;
HttpServicesClass httpServiceObject=新的HttpServicesClass(URLFinal);
尝试
{
httpServiceObject.ExecutePostRequest();
如果(httpServiceObject.getResponseCode()==200)
{
ResultHolder=httpServiceObject.getResponse();
if(ResultHolder!=null)
{
JSONArray JSONArray=null;
试一试{
jsonArray=新的jsonArray(ResultHolder);
JSONObject JSONObject;
浅海岸浅海岸;
substatshomeList=新的ArrayList();
对于(inti=0;i
stringid;
SubStatsListView.setOnItemClickListener(新的AdapterView.OnItemClickListener(){
@凌驾
public void onItemClick(AdapterView父对象、视图、整型位置、长id){
id=子STATSHOMELIST.get(位置).id\u子STA;
//类似地,单击项可以检索其余字段
}
});
字符串id;
SubStatsListView.setOnItemClickListener(新的AdapterView.OnItemClickListener(){
@凌驾
public void onItemClick(AdapterView父对象、视图、整型位置、长id){
id=子STATSHOMELIST.get(位置).id\u子STA;
//类似地,单击项可以检索其余字段
}
});

您可以通过getter和setter刚刚创建的方法来实现它,如下所示。然后执行asyncTask您将需要async task扩展的类的对象,然后通过其对象获得getList方法

List<SubastasHome> tempList = new ArrayList<>(); // Create tempList at top of the class..    


@Override
protected void onPostExecute(Void result)

{
    progressBarSubject.setVisibility(View.GONE);
    //CumplesListView.setVisibility(View.VISIBLE);
    if(subastasHomeList != null)
    {
        setList(subastasHomeList); // there set the List..
        ListAdapterClassSubastasHome adapter = new ListAdapterClassSubastasHome(subastasHomeList, context);
        SubastasListView.setAdapter(adapter);
    }
}


public void setList(List<SubastasHome> mSubastasHomeList){
    tempList = mSubastasHomeList;
}

public List<SubastasHome> getList(){
    return tempList;
}
List templast=new ArrayList();//在类的顶部创建templast。。
@凌驾
受保护的void onPostExecute(void结果)
{
progressBarSubject.setVisibility(View.GONE);
//cumpleListView.setVisibility(View.VISIBLE);
if(substatshomeList!=null)
{
setList(substatshomelist);//在那里设置列表。。
ListAdapterClassSubStatsHome adapter=新ListAdapterClassSubStatsHome(SubStatsHomeList,上下文);
substatsListView.setAdapter(适配器);
}
}
公共无效集合列表(列表mSubastasHomeList){
圣殿骑士=mSubastasHomeList;
}
公共列表getList(){
返回圣殿骑士;
}
存在具有AsyncTask和执行线程的类的make对象

GetHttpResponseReuniones getHttpResp = new GetHttpResponseReuniones();
getHttpResp.execute();


 SubastasListView.setClickable(true);
    SubastasListView.setOnItemClickListener(new AdapterView.OnItemClickListener(){
    @Override
    public void onItemClick (AdapterView < ? > parent, View view,int position, long id){
        SubastasHome subastasHome = getHttpResp.getList().get(position); // there get object..
        subastasHome.get....() /// get your data from this object.....
    }
}
GetHttpResponseReunions getHttpResp=new GetHttpResponseReunions();
getHttpResp.execute();
SubStatsListView.setClickable(真);
SubStatsListView.setOnItemClickListener(新的AdapterView.OnItemClickListener(){
@凌驾
public void onItemClick(AdapterView<?>父级、视图、整型位置、长id){
substatshome substatshome=getHttpResp.getList().get(位置);//有get对象。。
substatshome.get….()///从此对象获取数据。。。。。
}
}

您可以通过getter和setter刚刚创建的方法来实现它,如下所示。然后执行asyncTask您将需要async task扩展的类的对象,然后通过其对象获得getList方法

List<SubastasHome> tempList = new ArrayList<>(); // Create tempList at top of the class..    


@Override
protected void onPostExecute(Void result)

{
    progressBarSubject.setVisibility(View.GONE);
    //CumplesListView.setVisibility(View.VISIBLE);
    if(subastasHomeList != null)
    {
        setList(subastasHomeList); // there set the List..
        ListAdapterClassSubastasHome adapter = new ListAdapterClassSubastasHome(subastasHomeList, context);
        SubastasListView.setAdapter(adapter);
    }
}


public void setList(List<SubastasHome> mSubastasHomeList){
    tempList = mSubastasHomeList;
}

public List<SubastasHome> getList(){
    return tempList;
}
List templast=new ArrayList();//在类的顶部创建templast。。
@凌驾
受保护的void onPostExecute(void结果)
{
progressBarSubject.setVisibility(View.GONE);
//cumpleListView.setVisibility(View.VISIBLE);
if(substatshomeList!=null)
{
setList(substatshomelist);//在那里设置列表。。
ListAdapterClassSubStatsHome adapter=新ListAdapterClassSubStatsHome(SubStatsHomeList,上下文);
substatsListView.setAdapter(适配器);
}
}
公共无效集合列表(列表mSubastasHomeList){
圣殿骑士=mSubastasHomeList;
}
公共列表getList(){
返回圣殿骑士;
}
存在具有AsyncTask和执行线程的类的make对象

GetHttpResponseReuniones getHttpResp = new GetHttpResponseReuniones();
getHttpResp.execute();


 SubastasListView.setClickable(true);
    SubastasListView.setOnItemClickListener(new AdapterView.OnItemClickListener(){
    @Override
    public void onItemClick (AdapterView < ? > parent, View view,int position, long id){
        SubastasHome subastasHome = getHttpResp.getList().get(position); // there get object..
        subastasHome.get....() /// get your data from this object.....
    }
}
GetHttpResponseReunions getHttpResp=new GetHttpResponseReunions();
getHttpResp.execute();
SubStatsListView.setClickable(真);
SubStatsListView.setOnItemClickListener(新的AdapterView.OnItemClickListener(){
@凌驾
public void onItemClick(AdapterView<?>父级、视图、整型位置、长id){
substatshome substatshome=getHttpResp.getList().get(位置);//有get对象。。
substatshome.get….()///从此对象获取数据。。。。。
}
}

为什么不在监听器内部使用
substatashomelist.get(position)
呢?@SusmitAgrawal,我知道,但我得到的是位置,而不是该位置的数据为什么不在监听器内部使用
substatashomelist.get(position)