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