Programmazione Android – onitemclicklistener per listviews multiple non funziona

Nella mia attività ho creato sette listviews e sto usando viewpager per scorrimento tra di loro nella stessa attività. Ho quindi un database sqlite che popolano each listview. Il mio problema è che onitemclicklistener non funziona, non ci sono errori e il codice esegue bene ma non succede niente sui clic degli elementi di elenco. Ho testato fuori aggiungendo i messaggi di visualizzazione toast, ecc. Ma non succede niente sui clic dell'elenco di elenco.

Ho il sospetto che il problema è che non ho ottenuto le listviews da layout xml come il metodo convenzionale in modo che il metodo itemclicklistener è leggermente diverso, tuttavia non so quale metodo utilizzare quando si utilizza listviews in questo modo e nessun altro thread OS che ho visto crea listviews in questo modo. Se qualcuno potesse accontentarsi di far luce, sarei molto grato. Grazie in anticipo.

  • notifica android in background se l'applicazione è chiusa?
  • Convertire ArrayList in arrays String in Android
  • javax.net.ssl.SSLException: Connessione chiusa dal peer sul dispositivo 4.4.2 (funziona in 6.0.1)
  • Imansible get la versione adb; errore = 13 in Ubuntu 11.10
  • Come impostare il path NDK Build in OSX per Android studio
  • Bitmap a grande
  • @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); mContext = this; setContentView(R.layout.activity_schedule); ListView listview1 = new ListView(mContext); ListView listview2 = new ListView(mContext); ListView listview3 = new ListView(mContext); ListView listview4 = new ListView(mContext); ListView listview5 = new ListView(mContext); ListView listview6 = new ListView(mContext); ListView listview7 = new ListView(mContext); Vector<View> pages = new Vector<View>(); pages.add(listview1); pages.add(listview2); pages.add(listview3); pages.add(listview4); pages.add(listview5); pages.add(listview6); pages.add(listview7); ViewPager vp = (ViewPager) findViewById(R.id.viewpager); PageAdapter adapter = new PageAdapter(mContext,pages); vp.setAdapter(adapter); db.open(); scheduleAdapter = new ScheduleAdapter(ScheduleActivity.this, db.getMonday(),CursorAdapter.NO_SELECTION ); listview1.setAdapter(scheduleAdapter); db.close(); db.open(); scheduleAdapter = new ScheduleAdapter(ScheduleActivity.this, db.getTuesday(),CursorAdapter.NO_SELECTION ); listview2.setAdapter(scheduleAdapter); db.close(); db.open(); scheduleAdapter = new ScheduleAdapter(ScheduleActivity.this, db.getWednesday(),CursorAdapter.NO_SELECTION ); listview3.setAdapter(scheduleAdapter); db.close(); db.open(); scheduleAdapter = new ScheduleAdapter(ScheduleActivity.this, db.getThursday(),CursorAdapter.NO_SELECTION ); listview4.setAdapter(scheduleAdapter); db.close(); db.open(); scheduleAdapter = new ScheduleAdapter(ScheduleActivity.this, db.getFriday(),CursorAdapter.NO_SELECTION ); listview5.setAdapter(scheduleAdapter); db.close(); db.open(); scheduleAdapter = new ScheduleAdapter(ScheduleActivity.this, db.getSaturday(),CursorAdapter.NO_SELECTION ); listview6.setAdapter(scheduleAdapter); db.close(); db.open(); scheduleAdapter = new ScheduleAdapter(ScheduleActivity.this, db.getSunday(),CursorAdapter.NO_SELECTION ); listview7.setAdapter(scheduleAdapter); db.close(); listview1.setOnItemClickListener(new ListView.OnItemClickListener() { public void onItemClick(AdapterView<?> parent, View view, int position, long id) { } }); 

  • come get la posizione GPS android
  • ListView + CheckBox =?
  • Disinstallare l'applicazione Android prima di each debug
  • Come giocare l'URL video all'interno di webview di android
  • Viewpageindicator all'interno del frammento
  • Android - SQLite + SharedPreferences, 2 thread di lettura / scrittura contemporanea?
  • 3 Solutions collect form web for “Programmazione Android – onitemclicklistener per listviews multiple non funziona”

    Dalla tua descrizione capisco che le liste sono visualizzate quando si avvia l'applicazione.

    Il parametro posizione, in cui l'utente ha fatto clic sull'elenco (schermo).

    Hai provato a utilizzarlo con il caso di commutazione?

    Voglio dire come questo:

     list.setOnItemClickListener(new OnItemClickListener(){ public void onItemClick( AdapterView <?> parent, View view, int position,long id){ switch(position){ case 0: // write what you need here when the user clicks on the first list item break; case 1: // write what you need here when the user clicks on the 2nd list item break; } } }; 

    spero che questo ti aiuterà

    Non sono abbastanza sicuro perché l'itemClicklistener non sia chiamato quando si preme qualcosa in listview1, ma non credo che questo sia il problema più grande.

    Sei in un terribile inizio con l'aggiunta di 7 listviews in un'attività e con l'apertura e la chiusura del database 7 volte l'uno dopo l'altro.

    Ti suggerisco di iniziare con i templates Android UI di app: https://play.google.com/store/apps/details?id=com.groidify.uipatterns

    Qui troverai una pagina piena di esempi di viewpagers e tabs. Ti suggerisco di prendere il Jake Wharton.

    Vuoi farlo con frammenti.

    Nel tuo frammento di elenco si dovrebbe estendere ListFragment quindi utilizzare onListItemClick, come questo:

     public class ArrayListFragment extends ListFragment { @Override public void onActivityCreated(Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); setListAdapter(new ArrayAdapter<String>(getActivity(), android.R.layout.simple_list_item_1, Listnames.TITLES)); } @Override public void onListItemClick(ListView l, View v, int position, long id) { Log.i("FragmentList2", "Item clicked: " + id); String item = (String) getListAdapter().getItem(position); Intent intent = new Intent(getActivity(), SearchableActivity.class); intent.putExtra("item", item); Toast.makeText(getActivity(), item, Toast.LENGTH_LONG).show(); // startActivity(intent); } } 
    L'Android è un fan Android di Google, tutto su telefoni Android, Android Wear, Android Dev e applicazioni Android Games e così via.