Ver Mensaje Individual
  #1 (permalink)  
Antiguo 22/12/2014, 01:36
Balonso
 
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