Android 从另一个活动重新打开活动时刷新列表视图中的值

Android 从另一个活动重新打开活动时刷新列表视图中的值,android,android-listview,android-asynctask,Android,Android Listview,Android Asynctask,我需要您的帮助来解决我与某项活动相关的以下问题 活动具有显示JSON对象的列表视图。当用户点击一行时,会打开另一个活动,显示有关选定对象的更多详细信息。在第二个活动中,用户可以单击按钮向上投票对象。然后,票数增加1。然后,如果用户返回到以前的活动,则显示的给定投票数不会更新,但应根据用户给出的投票数进行更新 在第一个活动(列表视图)中,投票数字段是通过以下意图从上一个活动中给出的: 第一个活动代码(列表): import java.util.ArrayList; 导入java.util.Hash

我需要您的帮助来解决我与某项活动相关的以下问题

活动具有显示JSON对象的列表视图。当用户点击一行时,会打开另一个活动,显示有关选定对象的更多详细信息。在第二个活动中,用户可以单击按钮向上投票对象。然后,票数增加1。然后,如果用户返回到以前的活动,则显示的给定投票数不会更新,但应根据用户给出的投票数进行更新

在第一个活动(列表视图)中,投票数字段是通过以下意图从上一个活动中给出的:

第一个活动代码(列表):

import java.util.ArrayList;
导入java.util.HashMap;
导入android.content.Context;
导入android.content.Intent;
导入android.util.Log;
导入android.view.LayoutInflater;
导入android.view.view;
导入android.view.view.OnClickListener;
导入android.view.ViewGroup;
导入android.widget.BaseAdapter;
导入android.widget.ImageView;
导入android.widget.TextView;
公共类Empresas_ListViewAdapter扩展了BaseAdapter{
//声明变量
语境;
充气机;
阵列列表数据;
图像加载器;
HashMap resultp=新的HashMap();
公共Empresas_ListViewAdapter(上下文,
ArrayList(ArrayList){
this.context=上下文;
数据=数组列表;
imageLoader=新的imageLoader(上下文);
}
@凌驾
public int getCount(){
返回data.size();
}
@凌驾
公共对象getItem(int位置){
返回null;
}
@凌驾
公共长getItemId(int位置){
返回0;
}
公共视图getView(最终整数位置、视图转换视图、视图组父视图){
//声明变量
TextView valoracionEmpresa;
TextView nombreEmpresa;
TextView direccionEmpresa;
图像视图strImagen;
TextView DescriptionImpresa;
TextView telefonoEmpresa;
TextView facebookEmpresa;
TextView emailEmpresa;
TextView textoOferta;
TextView horarioEmpresa;
TextView latitudEmpresa;
TextView longitudEmpresa;
文本视图idEmpresa;
充气器=(充气器)上下文
.getSystemService(上下文布局\充气机\服务);
视图项视图=充气机。充气(R.layout.empresas\u列表视图\u项,父项,false);
//获得职位
resultp=data.get(位置);
//在listview_item.xml中找到文本视图
valoracionEmpresa=(TextView)itemView.findViewById(R.id.valoracionEmpresa);
nombreEmpresa=(TextView)itemView.findViewById(R.id.nombreEmpresa);
direccionEmpresa=(TextView)itemView.findViewById(R.id.direccionEmpresa);
//在listview_item.xml中找到ImageView
strImagen=(ImageView)itemView.findViewById(R.id.strImagen);
//捕获位置并将结果设置为文本视图
valoracionEmpresa.setText(resultp.get(Empresas_main activity.valoracionEmpresa));
nombreEmpresa.setText(resultp.get(Empresas_main activity.nombreEmpresa));
direccionEmpresa.setText(resultp.get(Empresas_main activity.direccionEmpresa));
//捕获位置并将结果设置为ImageView
//将标志图像URL传递到ImageLoader.class
imageLoader.DisplayImage(resultp.get(Empresas_MainActivity.STRIMAGEN),STRIMAGEN);
//捕获列表视图项单击
setOnClickListener(新的OnClickListener(){
@凌驾
公共void onClick(视图arg0){
//获得职位
resultp=data.get(位置);
意向意向=新意向(上下文,Empresas_SingleItemView.class);
//通过所有数据等级
intent.putExtra(“valoracionEmpresa”,resultp.get(Empresas_main activity.valoracionEmpresa));
//通过所有国家/地区的数据
intent.putExtra(“nombreEmpresa”,resultp.get(Empresas_MainActivity.nombreEmpresa));
//通过所有数据填充
intent.putExtra(“direccionEmpresa”,resultp.get(Empresas_main activity.direccionEmpresa));
//传递所有数据标志
intent.putExtra(“strImagen”,resultp.get(Empresas_MainActivity.strImagen));
intent.putExtra(“descrippcionempresa”,resultp.get(Empresas_main activity.descrippcionempresa));
intent.putExtra(“telefonoEmpresa”,resultp.get(Empresas_main activity.telefonoEmpresa));
intent.putExtra(“facebookEmpresa”,resultp.get(Empresas_MainActivity.facebookEmpresa));
intent.putExtra(“emailEmpresa”,resultp.get(Empresas_MainActivity.emailEmpresa));
intent.putExtra(“textoOferta”,resultp.get(Empresas_MainActivity.textoOferta));
intent.putExtra(“horarioEmpresa”,resultp.get(Empresas_main activity.horarioEmpresa));
intent.putExtra(“latitudEmpresa”,resultp.get(Empresas_MainActivity.latitudEmpresa));
intent.putExtra(“longitudEmpresa”,resultp.get(Empresas_main activity.longitudEmpresa));
intent.putExtra(“idEmpresa”,resultp.get(Empresas_MainActivity.idEmpresa));
//启动SingleItemView类
背景。开始触觉(意图);
}
});
返回项目视图;
}
}
第二个活动代码(详细信息)

import java.io.BufferedInputStream;
导入java.io.BufferedReader;
导入java.io.IOException;
导入java.io.InputStream;
导入java.io.InputStreamReader;
导入java.net.HttpURLConnection;
导入java.net.URL;
导入java.util.ArrayList;
导入java.util.List;
导入org.apache.http.HttpResponse;
导入org.apache.http.NameValuePair;
导入org.apache.http.client.ClientProtocolException;
导入org.apache.h
import java.util.ArrayList;
import java.util.HashMap;

import android.content.Context;
import android.content.Intent;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;

public class Empresas_ListViewAdapter extends BaseAdapter {

    // Declare Variables
    Context context;
    LayoutInflater inflater;
    ArrayList<HashMap<String, String>> data;
    ImageLoader imageLoader;
    HashMap<String, String> resultp = new HashMap<String, String>();

    public Empresas_ListViewAdapter(Context context,
            ArrayList<HashMap<String, String>> arraylist) {
        this.context = context;
        data = arraylist;
        imageLoader = new ImageLoader(context);
    }

    @Override
    public int getCount() {
        return data.size();
    }

    @Override
    public Object getItem(int position) {
        return null;
    }

    @Override
    public long getItemId(int position) {
        return 0;
    }

    public View getView(final int position, View convertView, ViewGroup parent) {
        // Declare Variables
        TextView valoracionEmpresa;
        TextView nombreEmpresa;
        TextView direccionEmpresa;
        ImageView strImagen;
        TextView descripcionEmpresa;
        TextView telefonoEmpresa;
        TextView facebookEmpresa;
        TextView emailEmpresa;
        TextView textoOferta;
        TextView horarioEmpresa;
        TextView latitudEmpresa;
        TextView longitudEmpresa;
        TextView idEmpresa;


        inflater = (LayoutInflater) context
                .getSystemService(Context.LAYOUT_INFLATER_SERVICE);

        View itemView = inflater.inflate(R.layout.empresas_listview_item, parent, false);
        // Get the position
        resultp = data.get(position);

        // Locate the TextViews in listview_item.xml
        valoracionEmpresa = (TextView) itemView.findViewById(R.id.valoracionEmpresa);
        nombreEmpresa = (TextView) itemView.findViewById(R.id.nombreEmpresa);
        direccionEmpresa = (TextView) itemView.findViewById(R.id.direccionEmpresa);

        // Locate the ImageView in listview_item.xml
        strImagen = (ImageView) itemView.findViewById(R.id.strImagen);

        // Capture position and set results to the TextViews
        valoracionEmpresa.setText(resultp.get(Empresas_MainActivity.VALORACIONEMPRESA));
        nombreEmpresa.setText(resultp.get(Empresas_MainActivity.NOMBREEMPRESA));
        direccionEmpresa.setText(resultp.get(Empresas_MainActivity.DIRECCIONEMPRESA));
        // Capture position and set results to the ImageView
        // Passes flag images URL into ImageLoader.class
        imageLoader.DisplayImage(resultp.get(Empresas_MainActivity.STRIMAGEN), strImagen);
        // Capture ListView item click
        itemView.setOnClickListener(new OnClickListener() {


            @Override
            public void onClick(View arg0) {
                // Get the position
                resultp = data.get(position);
                Intent intent = new Intent(context, Empresas_SingleItemView.class);

                // Pass all data rank
                intent.putExtra("valoracionEmpresa", resultp.get(Empresas_MainActivity.VALORACIONEMPRESA));

                // Pass all data country
                intent.putExtra("nombreEmpresa", resultp.get(Empresas_MainActivity.NOMBREEMPRESA));
                // Pass all data population
                intent.putExtra("direccionEmpresa",resultp.get(Empresas_MainActivity.DIRECCIONEMPRESA));
                // Pass all data flag
                intent.putExtra("strImagen", resultp.get(Empresas_MainActivity.STRIMAGEN));

                intent.putExtra("descripcionEmpresa",resultp.get(Empresas_MainActivity.DESCRIPCIONEMPRESA));
                intent.putExtra("telefonoEmpresa",resultp.get(Empresas_MainActivity.TELEFONOEMPRESA));
                intent.putExtra("facebookEmpresa",resultp.get(Empresas_MainActivity.FACEBOOKEMPRESA));
                intent.putExtra("emailEmpresa",resultp.get(Empresas_MainActivity.EMAILEMPRESA));
                intent.putExtra("textoOferta",resultp.get(Empresas_MainActivity.TEXTOOFERTA));
                intent.putExtra("horarioEmpresa",resultp.get(Empresas_MainActivity.HORARIOEMPRESA));
                intent.putExtra("latitudEmpresa",resultp.get(Empresas_MainActivity.LATITUDEMPRESA));
                intent.putExtra("longitudEmpresa",resultp.get(Empresas_MainActivity.LONGITUDEMPRESA));
                intent.putExtra("idEmpresa",resultp.get(Empresas_MainActivity.IDEMPRESA));




                // Start SingleItemView Class
                context.startActivity(intent);


            }
        });
        return itemView;
    }
}
import java.io.BufferedInputStream;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.ArrayList;
import java.util.List;

import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.HttpClient;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.util.ByteArrayBuffer;

import android.app.Activity;
import android.content.ActivityNotFoundException;
import android.content.Context;
import android.content.Intent;
import android.net.Uri;
import android.os.AsyncTask;
import android.os.Build;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.ImageView;
import android.widget.ProgressBar;
import android.widget.TextView;
import android.widget.Toast;

public class Empresas_SingleItemView extends Activity {
    // Declare Variables
    String valoracionEmpresa;
    String nombreEmpresa;
    String direccionEmpresa;
    String descripcionEmpresa;
    String telefonoEmpresa;
    String facebookEmpresa;
    String emailEmpresa;
    String textoOferta;
    String horarioEmpresa;
    String latitudEmpresa;
    String longitudEmpresa; 
    String imagenstrImagen;
    String idEmpresa;
    String position;
    private ProgressBar pb;
     URL aURL;
        /* Will be filled and displayed later. */
        String aString = null;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        // Get the view from singleitemview.xml
        ImageLoader imageLoader = new ImageLoader(this);
        setContentView(R.layout.empresas_singleitemview);


        Intent i = getIntent();
        // Get the result of rank
        valoracionEmpresa = i.getStringExtra("valoracionEmpresa");


        // Get the result of country
        nombreEmpresa = i.getStringExtra("nombreEmpresa");


        // Get the result of population
        direccionEmpresa = i.getStringExtra("direccionEmpresa");

        descripcionEmpresa = i.getStringExtra("descripcionEmpresa");
        telefonoEmpresa = i.getStringExtra("telefonoEmpresa");
        facebookEmpresa = i.getStringExtra("facebookEmpresa");
        emailEmpresa = i.getStringExtra("emailEmpresa");
        textoOferta = i.getStringExtra("textoOferta");
        horarioEmpresa = i.getStringExtra("horarioEmpresa");
        latitudEmpresa = i.getStringExtra("latitudEmpresa");
        longitudEmpresa = i.getStringExtra("longitudEmpresa");
        idEmpresa = i.getStringExtra("idEmpresa");

        // Get the result of flag
        imagenstrImagen = i.getStringExtra("strImagen");


        // Locate the TextViews in singleitemview.xml
        TextView txtvaloracionempresa = (TextView) findViewById(R.id.valoracionEmpresa);
        TextView txtnombreempresa = (TextView) findViewById(R.id.nombreEmpresa);
        TextView txtdireccionempresa = (TextView) findViewById(R.id.direccionEmpresa);
        TextView txtdescripcionempresa = (TextView) findViewById(R.id.descripcionEmpresa);
        TextView txtofertaempresa = (TextView) findViewById(R.id.textoOferta);
        TextView txthorarioempresa = (TextView) findViewById(R.id.horarioEmpresa);


        // Locate the ImageView in singleitemview.xml
        ImageView imagenEmpresa = (ImageView) findViewById(R.id.strImagen);

        // Set results to the TextViews
        txtvaloracionempresa.setText(valoracionEmpresa);
        txtnombreempresa.setText(nombreEmpresa);
        txtdireccionempresa.setText(direccionEmpresa);
        txtdescripcionempresa.setText(descripcionEmpresa);
        txtofertaempresa.setText(textoOferta);
        txthorarioempresa.setText(horarioEmpresa);

        // Capture position and set results to the ImageView
        // Passes flag images URL into ImageLoader.class
        imageLoader.DisplayImage(imagenstrImagen, imagenEmpresa);
    }

    public void openFacebook(View view) 
    {
        String url = "http://es-es.facebook.com/pages/"+facebookEmpresa;
        Intent i = new Intent(Intent.ACTION_VIEW);
        i.setData(Uri.parse(url));
        startActivity(i);


    }
    public void openEmail(View view) 
    {
        Intent i = new Intent(Intent.ACTION_SEND);
        i.setType("message/rfc822");
        i.putExtra(Intent.EXTRA_EMAIL  , new String[]{emailEmpresa});
        i.putExtra(Intent.EXTRA_SUBJECT, "Email desde Vive Gran Canaria App");
        i.putExtra(Intent.EXTRA_TEXT   , "Escribe aqui el texto de tu mensaje");
        try {
            startActivity(Intent.createChooser(i, "Send mail..."));
        } catch (android.content.ActivityNotFoundException ex) {
            Toast.makeText(Empresas_SingleItemView.this, "There are no email clients installed.", Toast.LENGTH_SHORT).show();
        }
    }
    public void openLlamar(View view) 
    {
         try {
                Intent callIntent = new Intent(Intent.ACTION_CALL);
                callIntent.setData(Uri.parse("tel:"+telefonoEmpresa));
                startActivity(callIntent);
            } catch (ActivityNotFoundException e) {
                Log.e("helloandroid dialing example", "Call failed", e);
            }
    }
    public void openVotar(View view)
    {
        Log.i("Response", "Hemos entrado en openVotar: ");
        ConnectionTask task = new ConnectionTask();
        String[] params = new String[2];
        String url = "http://XXXXX/cambiarvaloracionempresa.php?id="+idEmpresa;
        params[0] = url;
        //params[1] = somethingelseifneeded;
        task.execute(params);   }
    private class ConnectionTask extends AsyncTask<String, Void, String>{
        @Override
        protected String doInBackground(String... urls) {
             URL aURL;
                /* Will be filled and displayed later. */
                String aString = null;
                try {
        aURL = new URL(
                urls[0]);

        /* Open a connection to that URL. */
        final HttpURLConnection aHttpURLConnection = (HttpURLConnection) aURL.openConnection();

        /* Define InputStreams to read from the URLConnection. */
        InputStream aInputStream = aHttpURLConnection.getInputStream();
        BufferedInputStream aBufferedInputStream = new BufferedInputStream(
                aInputStream);

        /* Read bytes to the Buffer until there is nothing more to read(-1) */
        ByteArrayBuffer aByteArrayBuffer = new ByteArrayBuffer(50);
        int current = 0;
        while ((current = aBufferedInputStream.read()) != -1) {
            aByteArrayBuffer.append((byte) current);
        }


        /* Convert the Bytes read to a String. */
        aString = new String(aByteArrayBuffer.toByteArray());               } catch (IOException e) {
                   // Log.d(TAG, e.toString());
                }
            return aString;
        }

        @Override
        protected void onPostExecute(String result) {
                   TextView aTextView;Log.i("Response JSON", result);
                   TextView txtvaloracionempresa = (TextView) findViewById(R.id.valoracionEmpresa);
                txtvaloracionempresa.setText(result);

    // result is what you got from your connection
    //aTextView.setText(result);

        }

    }

}
for (int i = ; ; ){
…
…
adapter.addItem(item);
adapter.notifyDataSetChanged();
}