Android 在执行后获取值
我正在执行从json文件读取的Asynctask函数。我希望在执行后传递上,像字符串联系人的“nombre,categoria,hora,lugar…”传递给我的另一个活动。如何在postExecute上获取联系人的值?有人能帮我吗?这是我的密码Android 在执行后获取值,android,android-asynctask,Android,Android Asynctask,我正在执行从json文件读取的Asynctask函数。我希望在执行后传递上,像字符串联系人的“nombre,categoria,hora,lugar…”传递给我的另一个活动。如何在postExecute上获取联系人的值?有人能帮我吗?这是我的密码 private class GetProgramaSC extends AsyncTask<Void, Void, Void> { @Override protected void onPreExecut
private class GetProgramaSC extends AsyncTask<Void, Void, Void> {
@Override
protected void onPreExecute() {
super.onPreExecute();
// Showing progress dialog
pDialog = new ProgressDialog(getActivity());
if(idioma.equalsIgnoreCase("es")){
pDialog.setMessage("Por favor espere...");
}
else{
pDialog.setMessage("Itxaron mesedez...");
}
pDialog.setCancelable(false);
pDialog.show();
}
@Override
protected Void doInBackground(Void... arg0) {
try {
JSONObject jsonObj = new JSONObject(loadJSONFromAsset());
// Getting JSON Array node
eventos = jsonObj.getJSONArray("results");
// looping through All Contacts
for (int i = 0; i < eventos.length(); i++) {
JSONObject c = eventos.getJSONObject(i);
String categoria = c.getString(TAG_CATEGORIA);
String nombre = c.getString(TAG_NOMBRE);
String hora = c.getString(TAG_HORA);
String lugar = c.getString(TAG_LUGAR);
String fecha = c.getString(TAG_FECHA);
String coordenadas = c.getString(TAG_COORDENADAS);
String info = c.getString(TAG_INFO);
String imagen= c.getString(TAG_IMAGEN);
// tmp hashmap for single contact
HashMap<String, String> contact = new HashMap<String, String>();
// adding each child node to HashMap key => value
contact.put("categoria", categoria);
contact.put("nombre", nombre);
contact.put("hora", hora);
contact.put("nombre_lugar", lugar);
contact.put("fecha", fecha);
contact.put("coordenadas", coordenadas);
contact.put("info", info);
contact.put("imagen", imagen);
// adding contact to contact list
eventosList.add(contact);
}
} catch (JSONException e) {
e.printStackTrace();
}
return null;
}
@Override
protected void onPostExecute(Void result) {
super.onPostExecute(result);
// Dismiss the progress dialog
if (pDialog.isShowing())
pDialog.dismiss();
}
}
私有类GetProgramaSC扩展异步任务{
@凌驾
受保护的void onPreExecute(){
super.onPreExecute();
//显示进度对话框
pDialog=newprogressdialog(getActivity());
if(a.equalsIgnoreCase(“es”){
pDialog.setMessage(“Por-favor-espere…”);
}
否则{
pDialog.setMessage(“Itxaron mesedez…”);
}
pDialog.setCancelable(假);
pDialog.show();
}
@凌驾
受保护的Void doInBackground(Void…arg0){
试一试{
JSONObject jsonObj=新的JSONObject(loadJSONFromAsset());
//获取JSON数组节点
eventos=jsonObj.getJSONArray(“结果”);
//通过所有触点循环
对于(int i=0;ivalue
联系方式。放置(“分类”,分类);
联系人:put(“nombre”,nombre);
联系方式。放置(“hora”,hora);
联系人:put(“nombre_lugar”,lugar);
联系人:put(“fecha”,fecha);
联系方式。放置(“coordenadas”,coordenadas);
联系人。放置(“信息”,信息);
联系人:put(“imagen”,imagen);
//将联系人添加到联系人列表
eventosList.add(联系人);
}
}捕获(JSONException e){
e、 printStackTrace();
}
返回null;
}
@凌驾
受保护的void onPostExecute(void结果){
super.onPostExecute(结果);
//关闭进度对话框
if(pDialog.isShowing())
pDialog.disclose();
}
}
非常感谢这很简单
将数据传递到postexecute
你可以随心所欲地处理数据
private class GetProgramaSC extends AsyncTask<String, String, String> {
@Override
protected void onPreExecute() {
super.onPreExecute();
// Showing progress dialog
pDialog = new ProgressDialog(getActivity());
if(idioma.equalsIgnoreCase("es")){
pDialog.setMessage("Por favor espere...");
}
else{
pDialog.setMessage("Itxaron mesedez...");
}
pDialog.setCancelable(false);
pDialog.show();
}
@Override
protected Void doInBackground(String... arg0) {
return loadJSONFromAsset();
}
@Override
protected void onPostExecute(String result) {
super.onPostExecute(result);
// Dismiss the progress dialog
try {
JSONObject jsonObj = new JSONObject(result);
// Getting JSON Array node
eventos = jsonObj.getJSONArray("results");
// looping through All Contacts
for (int i = 0; i < eventos.length(); i++) {
JSONObject c = eventos.getJSONObject(i);
String categoria = c.getString(TAG_CATEGORIA);
String nombre = c.getString(TAG_NOMBRE);
String hora = c.getString(TAG_HORA);
String lugar = c.getString(TAG_LUGAR);
String fecha = c.getString(TAG_FECHA);
String coordenadas = c.getString(TAG_COORDENADAS);
String info = c.getString(TAG_INFO);
String imagen= c.getString(TAG_IMAGEN);
// tmp hashmap for single contact
HashMap<String, String> contact = new HashMap<String, String>();
// adding each child node to HashMap key => value
contact.put("categoria", categoria);
contact.put("nombre", nombre);
contact.put("hora", hora);
contact.put("nombre_lugar", lugar);
contact.put("fecha", fecha);
contact.put("coordenadas", coordenadas);
contact.put("info", info);
contact.put("imagen", imagen);
// adding contact to contact list
eventosList.add(contact);
}
} catch (JSONException e) {
e.printStackTrace();
}
if (pDialog.isShowing())
pDialog.dismiss();
}
}
在另一项活动中
Bundle bundle = this.getIntent().getExtras();
if(bundle != null) {
hashMap = bundle.getSerializable("HashMap");
}
将您的任务签名更改为:
私有类GetProgramaSC扩展异步任务
然后doInBackground
必须返回列表。因此,在doInBackground
末尾返回您的eventos
,您将在PostExecute上收到它
private class GetProgramaSC extends AsyncTask<Void, Void, List<String>> {
...
@Override
protected List<String> doInBackground(Void... arg0) {
...
return eventos;
}
@Override
protected void onPostExecute(List<String> result) {
super.onPostExecute(result);
// Dismiss the progress dialog
if (pDialog.isShowing())
pDialog.dismiss();
}
}
私有类GetProgramaSC扩展异步任务{
...
@凌驾
受保护列表doInBackground(无效…arg0){
...
返回事件;
}
@凌驾
受保护的void onPostExecute(列表结果){
super.onPostExecute(结果);
//关闭进度对话框
if(pDialog.isShowing())
pDialog.disclose();
}
}
在意图的帮助下,无法将大量字符串数据传递给另一个活动,因此在解析JSON后,您可以将这些数据存储在应用程序类中,该类可以在项目中的任何位置调用。使用对象扩展您的类(无论您希望结果是什么)
public class GetProgramaSC extends AsyncTask<Void, Void, Object> {}
希望它能帮助你
@Override
protected void onPostExecute(Void result) {
super.onPostExecute(result);
// Dismiss the progress dialog
if (pDialog.isShowing())
pDialog.dismiss();
Intent i = new Intent(getActivity, NewActivity.class);
i.putExtra("arraylist", eventolist);
startActivity(i);
}
然后是新活动:
ArrayList<HashMap<String, String>> arraylist = (ArrayList<HashMap<String,String>>) getIntent().getSerializableExtra("arraylist");
ArrayList ArrayList=(ArrayList)getIntent().getSerializableExtra(“ArrayList”);
现在只需从新活动中的arraylist中提取hashmap及其值!
例如:-arraylist.get(0.get(“nombre”) 请参阅,稍后如何将“nombre”传递给其他活动?谢谢,稍后我如何将“nombre”传递给其他活动?感谢你的意图,并以这种意图调用活动?Intent in=新的Intent(getActivity(),AnotherActivity.class);in.putExtra(“nombre”,nombre);是的,就是这样
@Override
protected void onPostExecute(Void result) {
super.onPostExecute(result);
// Dismiss the progress dialog
if (pDialog.isShowing())
pDialog.dismiss();
Intent i = new Intent(getActivity, NewActivity.class);
i.putExtra("arraylist", eventolist);
startActivity(i);
}
ArrayList<HashMap<String, String>> arraylist = (ArrayList<HashMap<String,String>>) getIntent().getSerializableExtra("arraylist");