Foros del Web » Programando para Internet » Android »

Problema con el Listview

Estas en el tema de Problema con el Listview en el foro de Android en Foros del Web. Hola, La el código funciona perfectamente hasta que trato de implementar el método setOnItemClickListener. La listview se carga perfectamente cuando esa parte del código está ...
  #1 (permalink)  
Antiguo 22/12/2014, 01:36
 
Fecha de Ingreso: diciembre-2013
Mensajes: 1
Antigüedad: 10 años, 11 meses
Puntos: 0
Pregunta Problema con el Listview

Hola,

La el código funciona perfectamente hasta que trato de implementar el método setOnItemClickListener. La listview se carga perfectamente cuando esa parte del código está comentada, pero cuando trato de simular la app con esa parte dentro del código da un fatal exception. os copio el código, que no es muy largo, porque quizas entre en conflicto con algo, solo se me ocurre eso.
PD: también lo he intentado con extends ListAvtivity, en lugar de solo Activity, pero eso directamente no me deja compilar.

Muchas gracias

Código Java:
Ver original
  1. import java.util.ArrayList;
  2. import java.util.List;
  3.  
  4. import android.app.Activity;
  5. import android.app.ProgressDialog;
  6. import android.content.Intent;
  7. import android.os.AsyncTask;
  8. import android.os.Bundle;
  9. import android.util.Log;
  10. import android.view.Menu;
  11. import android.view.MenuItem;
  12. import android.view.View;
  13. import android.widget.AdapterView;
  14. import android.widget.ListView;
  15. import android.widget.AdapterView.OnItemClickListener;
  16. import com.parse.ParseException;
  17. import com.parse.ParseFile;
  18. import com.parse.ParseObject;
  19. import com.parse.ParseQuery;
  20. import com.parse.ParseUser;
  21.  
  22. public class Welcome extends Activity {
  23.     // Declare Variables
  24.     ListView listview;
  25.     List<ParseObject> ob;
  26.     ProgressDialog mProgressDialog;
  27.     ListViewAdapter adapter;
  28.     private ArrayList<WorldPopulation> worldpopulationlist = null;
  29.    
  30.  
  31.     @Override
  32.     public void onCreate(Bundle savedInstanceState) {
  33.         super.onCreate(savedInstanceState);
  34.         // Get the view from listview_main.xml
  35.         setContentView(R.layout.welcome);
  36.         // Execute RemoteDataTask AsyncTask
  37.         new RemoteDataTask().execute();
  38.        
  39.    
  40.     listview.setOnItemClickListener(new OnItemClickListener() {
  41.  
  42.         @Override
  43.         public void onItemClick(AdapterView<?> parent, View view,int position, long id) {
  44.  
  45.             //Toast.makeText(getApplicationContext(),"Seleccón:  " + position ,Toast.LENGTH_LONG).show();
  46.  
  47.         }
  48.         });
  49.     }
  50.    
  51.     /*public void infolocal(View view){
  52.         Intent i=new Intent(this, InfoLocal.class);
  53.         Object o = getListAdapter().getItem(position);
  54.         i.putExtra("path", direccion);
  55.         startActivity(i);
  56.     }*/
  57.     /*protected void onListItemClick(ListView listView, View view, int position, long id) {
  58.         super.onListItemClick(listView, view, position, id);
  59.         Object o = getListAdapter().getItem(position);
  60.         Toast.makeText(this, "Selección: " + Integer.toString(position)
  61.                 +  " - " + o.toString(),Toast.LENGTH_LONG).show();
  62.         //Intent i = new Intent(this, campo.class );
  63.         //startActivity(i);
  64.     }*/
  65.                  
  66.     //crea la ACTIONBAR
  67.     public boolean onCreateOptionsMenu(Menu menu) {
  68.         getMenuInflater().inflate(R.menu.menu, menu);
  69.         return true;
  70.     }
  71.     //acciones segun el id seleccionado de la actonbar
  72.     @Override
  73.     public boolean onOptionsItemSelected(MenuItem item) {
  74.         switch (item.getItemId()) {
  75.             case R.id.listview:
  76.                 ParseUser.logOut();
  77.                 finish();
  78.                 return true;
  79.             case R.id.list_item:
  80.                 ParseUser.logOut();
  81.                 finish();
  82.                 return true;
  83.             case R.id.menu_settings:
  84.                 ParseUser.logOut();
  85.                 finish();
  86.                 return true;
  87.             default:
  88.                 return super.onOptionsItemSelected(item);
  89.         }
  90.     }
  91.    
  92.     // RemoteDataTask AsyncTask
  93.     private class RemoteDataTask extends AsyncTask<Void, Void, Void> {
  94.         @Override
  95.         protected void onPreExecute() {
  96.             super.onPreExecute();
  97.             // Create a progressdialog
  98.             mProgressDialog = new ProgressDialog(Welcome.this);
  99.             // Set progressdialog title
  100.             mProgressDialog.setTitle("Estamos buscando ofertas para ti");
  101.             // Set progressdialog message
  102.             mProgressDialog.setMessage("Cargando..");
  103.             mProgressDialog.setIndeterminate(false);
  104.             // Show progressdialog
  105.             mProgressDialog.show();
  106.         }
  107.  
  108.         @Override
  109.         protected Void doInBackground(Void... params) {
  110.             // Create the array
  111.             worldpopulationlist = new ArrayList<WorldPopulation>();
  112.             try {
  113.                 // Locate the class table named "Descriptor" in Parse.com
  114.                 ParseQuery<ParseObject> query = new ParseQuery<ParseObject>(
  115.                         "Promo");
  116.                 // Locate the column named "ranknum" in Parse.com and order list
  117.                 // by ascending
  118.                 query.orderByAscending("ranknum");
  119.                 ob = query.find();
  120.                 for (ParseObject promo : ob) {
  121.                     // Locate images in foto column
  122.                     ParseFile image = (ParseFile) promo.get("foto");
  123.  
  124.                     WorldPopulation map = new WorldPopulation();
  125.                     map.setLocal((String) promo.get("local"));
  126.                     map.setDescriptor((String) promo.get("descriptor"));
  127.                     map.setPopulation((String) promo.get("population"));
  128.                     map.setFoto(image.getUrl());
  129.                     worldpopulationlist.add(map);
  130.                 }
  131.             } catch (ParseException e) {
  132.                 Log.e("Error", e.getMessage());
  133.                 e.printStackTrace();
  134.             }
  135.             return null;
  136.         }
  137.  
  138.         @Override
  139.         protected void onPostExecute(Void result) {
  140.             // Locate the listview in listview_main.xml
  141.             listview = (ListView) findViewById(R.id.listview);
  142.             // Pass the results into ListViewAdapter.java
  143.             adapter = new ListViewAdapter(Welcome.this,
  144.                     worldpopulationlist);
  145.             // Binds the Adapter to the ListView
  146.             listview.setAdapter(adapter);
  147.            
  148.             // Close the progressdialog
  149.             mProgressDialog.dismiss();
  150.         }
  151.     }
  152.  
  153. }

Última edición por razpeitia; 25/12/2014 a las 23:05
  #2 (permalink)  
Antiguo 23/12/2014, 17:07
Avatar de ipraetoriux  
Fecha de Ingreso: abril-2010
Ubicación: ipraetoriux.com
Mensajes: 1.125
Antigüedad: 14 años, 6 meses
Puntos: 155
Respuesta: Problema con el Listview

...primero no se entienda nada, eso de copiar y pegar el codigo asi como viene, por lo menos tomate el trabajo de incluirlo en etiquetas de Java, asi

Código Java:
Ver original
  1. public class Etiquetas{
  2.    public static void main(String[] args){}
  3. }

...por otro lado, en el parametro del setOnClickListener deberia ser new AdapterView.OnItemClickListener()...luego decis que la parte comentada no te funciona, pero tenes varias partes comentadas y el codigo es un quilombo, arregla y especifica para que te podamos ayudar.

Etiquetas: listview, onclick
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 11:20.