Ottenere i dati dettagliati successivi e precedenti da listview

Non so come fare una function per mostrare i dettagli del dettaglio successivo / precedente facendo clic sul button successivo / precedente basato sulla visualizzazione di liste.

Questo è lo screenshot che voglio fare

  • IllegalArgumentException: Nessuna vista trovata per id per il frammento - ViewPager in ViewPager
  • Android - convertire doc, pagine docx e xls, fogli xlsx in html utilizzando apache POI
  • Android CTS mostra ShellCommandUnresponsiveException sull'emulatore
  • Come get un Bitmap da VectorDrawable
  • Qualcuno ha creato il codice Formattero codice Java per Eclipse IDE che è conforms alle regole dello stile del codice Android?
  • Dovrebbe il renderingThread di un SurfaceView avere lo stesso ciclo di vita della vista o dell'attività?
  • La mia attività di listview

    Attività dati dettagliati , per visualizzare i dati successivi / precedenti dall'elenco

    EDIT: ho i dati di listview (usa il parser di xml) e trasmetto i dati alla nuova azione chiamata "Detail_toko.class":

    List<NameValuePair> paramemeter = new ArrayList<NameValuePair>(); paramemeter.add(new BasicNameValuePair("keyword", "a")); // paramemeter.add(new BasicNameValuePair("kategori",Category.getSelectedItem().toString())); XMLParser parser = new XMLParser(); String xml = parser.getXmlFromUrl(URL, paramemeter); // getting XML from URL Document doc = parser.getDomElement(xml); // getting DOM element NodeList nl = doc.getElementsByTagName(TAG_DETAIL); // looping through all song nodes <song> for (int i = 0; i < nl.getLength(); i++) { // creating new HashMap HashMap<String, String> map = new HashMap<String, String>(); Element e = (Element) nl.item(i); // adding each child node to HashMap key => value map.put(TAG_ID, parser.getValue(e, TAG_ID)); map.put(TAG_NAMATOKO, parser.getValue(e, TAG_NAMATOKO)); map.put(TAG_KATEGORI, parser.getValue(e, TAG_KATEGORI)); map.put(TAG_EMAIL, parser.getValue(e, TAG_EMAIL)); map.put(TAG_ICON, parser.getValue(e, TAG_ICON)); // adding HashList to ArrayList PremiumList.add(map); } return null; } /** * Updating parsed JSON data into ListView * */ list=(ListView)findViewById(R.id.listview); if(PremiumList.size() > 0) { adapter=new LazyAdapterStore(ListPerusahaan.this, PremiumList); list.setAdapter(adapter); } else { Toast toast= Toast.makeText(getApplicationContext(), "No data found, enter another keyword", Toast.LENGTH_SHORT); toast.setGravity(Gravity.CENTER_VERTICAL|Gravity.CENTER_HORIZONTAL, 0, 0); toast.show(); } // Click event for single list row list.setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { // getting values from selected ListItem String nama_toko = ((TextView) view.findViewById(R.id.nama_toko)).getText().toString(); String kategori = ((TextView) view.findViewById(R.id.kategori)).getText().toString(); String email = ((TextView) view.findViewById(R.id.email)).getText().toString(); PremiumList = new ArrayList<HashMap<String, String>>(); Intent in = new Intent(ListPerusahaan.this, Detail_toko.class); in.putExtra("PremiumList", PremiumList); //in.putStringArrayListExtra( "PremiumList", PremiumList ); in.putExtra("position", position); in.putExtra("TotalData", TotalData); in.putExtra(TAG_NAMATOKO, nama_toko); in.putExtra(TAG_KATEGORI, kategori); in.putExtra(TAG_EMAIL, email); startActivity(in); 

    Questo è il mio codice LazyAdapterStore:

      public View getView(int position, View convertView, ViewGroup parent) { View vi=convertView; if(convertView==null) vi = inflater.inflate(R.layout.list_data_store, null); TextView nama_toko = (TextView)vi.findViewById(R.id.nama_toko); // title TextView kategori = (TextView)vi.findViewById(R.id.kategori); // title ImageView thumb_image=(ImageView)vi.findViewById(R.id.list_image); // thumb image TextView email = (TextView)vi.findViewById(R.id.email); // artist name HashMap<String, String> detail = new HashMap<String, String>(); detail = data.get(position); // Setting all values in listview nama_toko.setText(detail.get(ListPerusahaan.TAG_NAMATOKO)); kategori.setText(detail.get(ListPerusahaan.TAG_KATEGORI)); email.setText(detail.get(ListPerusahaan.TAG_EMAIL)); imageLoader.DisplayImage(detail.get(ListPerusahaan.TAG_ICON), thumb_image); return vi; } 

    EDIT: e, questa è la mia nuova attività "Detail_Toko" per visualizzare i dati di dettaglio da elementi di listview:

     @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); //this must be called BEFORE setContentView requestWindowFeature(Window.FEATURE_CUSTOM_TITLE); setContentView(R.layout.detail_toko); getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.layout.window_title); call_btn=(Button)findViewById(R.id.call); email_btn=(Button)findViewById(R.id.email); sms_btn=(Button)findViewById(R.id.sms); Next_btn=(Button)findViewById(R.id.Next); Prev_btn=(Button)findViewById(R.id.Prev); phonenumber=(TextView)findViewById(R.id.telpon); // getting intent data Intent in = getIntent(); // @SuppressWarnings("unchecked") //ArrayList<HashMap<String, String>> PremiumList = (ArrayList<HashMap<String, String>>) getIntent().getSerializableExtra("PremiumList"); // Get String values from previous intent final String nama_toko = in.getStringExtra(TAG_NAMATOKO); final String kategori = in.getStringExtra(TAG_KATEGORI); final String email = in.getStringExtra(TAG_EMAIL); // Get Int values from previous intent final int posisi = in.getExtras().getInt("position"); final int Total_data = in.getExtras().getInt("TotalData"); /* Bundle bundle = in.getExtras(); HashMap<String, String> list = (HashMap<String, String>) bundle.getSerializable("PremiumList"); list = data.get(currentposition); */ Bundle bundle = in.getExtras(); HashMap<String, String> list = (HashMap<String, String>) bundle.getSerializable("PremiumList"); list = data.get(currentposition); // Displaying all values on the screen lblPosisi = (TextView) findViewById(R.id.namatoko); lbltotaldata = (TextView) findViewById(R.id.nama); lblNamatoko = (TextView) findViewById(R.id.nama_toko); lblKategori = (TextView) findViewById(R.id.kategori); lblEmail = (TextView) findViewById(R.id.textemail); lblPosisi.setText(String.valueOf(posisi)); lbltotaldata.setText(String.valueOf(Total_data)); lblNamatoko.setText(nama_toko); lblKategori.setText(kategori); lblEmail.setText(email); // Set the int value of currentposition from previous selected listview item currentposition = posisi; Next_btn.setOnClickListener(new Button.OnClickListener(){ public void onClick(View v){ if(currentposition >= Total_data - 1) { Toast toast= Toast.makeText(getApplicationContext(), "Last Record", Toast.LENGTH_SHORT); toast.setGravity(Gravity.CENTER_VERTICAL|Gravity.CENTER_HORIZONTAL, 0, 0); toast.show(); } else { currentposition++; lblPosisi.setText(String.valueOf(currentposition)); lblNamatoko.setText(list.get(nama_toko)); lblKategori.setText(list.get(kategori)); lblEmail.setText(list.get(email)); } } }); Prev_btn.setOnClickListener(new Button.OnClickListener(){ public void onClick(View v){ if(currentposition <= 0) { Toast toast= Toast.makeText(getApplicationContext(), "First Record", Toast.LENGTH_SHORT); toast.setGravity(Gravity.CENTER_VERTICAL|Gravity.CENTER_HORIZONTAL, 0, 0); toast.show(); } else { currentposition--; lblPosisi.setText(String.valueOf(currentposition)); lblNamatoko.setText(list.get(nama_toko)); lblKategori.setText(list.get(kategori)); lblEmail.setText(list.get(email)); } } }); 

    il problema è che non so come fare una function per mostrare i dati di dettaglio successivi / precedenti da listview facendo clic sul button successivo / precedente nell'attività "Detail_toko". Per favore qualcuno mi aiuti …

    Grazie in anticipo

  • Imansible caricare l'image da Galleria
  • Cosa significa il context "questo"?
  • come recuperare l'elenco dei contatti in android
  • La barra di stato Android prevede le icone della dimensione 25x25dp mentre le linee guida raccomandano 32x32dp. Chi è sbagliato?
  • INSTALL_FAILED_MISSING_SHARED_LIBRARY errore in Android
  • Come sviluppare una tastiera soft per Android?
  • 2 Solutions collect form web for “Ottenere i dati dettagliati successivi e precedenti da listview”

    Appena visto la tua richiesta sull'ultimo post.

    La soluzione fornita da Parvaz è perfetta, devi solo capire il codice. Hai un "PremiumList" arrayslist che è responsabile dei dati delle righe di listview. Tutto quello di cui hai bisogno è passare la posizione e questa list a Detail_toko.class (attraverso l'intento di utilizzare il parallelo o dichiarare l'astrattista come statico (non consigliato) ecc.) E la tua soluzione sarà a due passi di distanza.

    In Detail_toko.class crea una currentPosition variabile globale che otterrà il suo valore dall'attività passata come TAG_NAMATOKO dall'intenzione. Quindi in onClickListener del button NEXT incremento 1 a currentPosition e get i dettagli dal tuo arrayslist che hai appena trasportto dall'ultima attività come hai fatto nel tuo metodo getView.

      HashMap<String, String> detail = new HashMap<String, String>(); detail = data.get(currentPosition); // Setting all values in listview nama_toko = detail.get(ListPerusahaan.TAG_NAMATOKO); kategori = detail.get(ListPerusahaan.TAG_KATEGORI); email = detail.get(ListPerusahaan.TAG_EMAIL); 

    Impostate questi valori e la nuova visualizzazione verrà aggiornata di conseguenza.

    In onClickListener del decremento 1 del button PRECEDENTE da currentPosition, seguito da lo stesso codice (il che significa che è necessario creare un metodo e call che non ripetere il codice).

    Provalo. Questo è dettagliato come possiamo spiegare senza effettivamente fare i tuoi compiti!

    EDIT:

    Prima di tutto rimuovere questa row da OnItemClick

      PremiumList = new ArrayList<HashMap<String, String>>(); 

    Stai eliminando tutti i dati da PremiumList in questa row e in questo modo otternetworking una list vuota nell'attività successiva. Quindi liberatevi di questa linea. Una volta che otterrai PremiumList nella tua prossima attività, tutto ciò di cui hai bisogno è la posizione e totalData insieme ad essa in intenzione extra. Puoi liberarsi di TAG_NAMATOKO, TAG_KATEGORI, TAG_EMAIL dalla tua intenzione extra.

    Te l'avevo detto di non ripetere il codice, visto che sei principiante è molto importnte per voi di seguire perché renderà la tua vita facile prendendo tali considerazioni e facendo il tuo habbit.

    Ora il tuo codice in "Detail_Toko" diventerà:

      HashMap<String, String> list = null; int currentposition = 0; int Total_data =0; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); //this must be called BEFORE setContentView requestWindowFeature(Window.FEATURE_CUSTOM_TITLE); setContentView(R.layout.detail_toko); getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.layout.window_title); call_btn=(Button)findViewById(R.id.call); email_btn=(Button)findViewById(R.id.email); sms_btn=(Button)findViewById(R.id.sms); Next_btn=(Button)findViewById(R.id.Next); Prev_btn=(Button)findViewById(R.id.Prev); phonenumber=(TextView)findViewById(R.id.telpon); // Displaying all values on the screen lblPosisi = (TextView) findViewById(R.id.namatoko); lbltotaldata = (TextView) findViewById(R.id.nama); lblNamatoko = (TextView) findViewById(R.id.nama_toko); lblKategori = (TextView) findViewById(R.id.kategori); lblEmail = (TextView) findViewById(R.id.textemail); // getting intent data Bundle bundle = getIntent().getExtras(); // Get Int values from previous intent currentposition = bundle.getInt("position"); Total_data = bundle.getInt("TotalData"); list = (HashMap<String, String>) bundle.get("PremiumList"); setView(); Next_btn.setOnClickListener(new Button.OnClickListener(){ public void onClick(View v){ if(currentposition >= Total_data - 1) { Toast toast= Toast.makeText(getApplicationContext(), "Last Record", Toast.LENGTH_SHORT); toast.setGravity(Gravity.CENTER_VERTICAL|Gravity.CENTER_HORIZONTAL, 0, 0); toast.show(); } else { currentposition++; setView(); } } }); Prev_btn.setOnClickListener(new Button.OnClickListener(){ public void onClick(View v){ if(currentposition <= 0) { Toast toast= Toast.makeText(getApplicationContext(), "First Record", Toast.LENGTH_SHORT); toast.setGravity(Gravity.CENTER_VERTICAL|Gravity.CENTER_HORIZONTAL, 0, 0); toast.show(); } else { currentposition--; setView(); } } }); private void setView() { if(list != null && list.size() > currentposition) { HashMap<String, String> detail = new HashMap<String, String>(); detail = list.get(currentposition); lblPosisi.setText(String.valueOf(currentposition)); lbltotaldata.setText(String.valueOf(Total_data)); lblNamatoko.setText(detail.get(ListPerusahaan.TAG_NAMATOKO)); lblKategori.setText(detail.get(ListPerusahaan.TAG_KATEGORI)); lblEmail.setText(detail.get(ListPerusahaan.TAG_EMAIL)); } } 

    Suggerimento: Utilizzare ViewHolder per popolare la visualizzazione nel metodo getView, renderà l'adattatore "Un adattatore efficiente". (ricerca di esempi) Segui la convenzione di denominazione e tutto. Controllare anyObject! = Null, la loro dimensione o lunghezza prima di utilizzarli e bundle.containKey ecc roba per evitare eccezioni fatale come nullPointerException.

    Basta passare l'ArrayList di PremiumList all'attività di Detail_toko … o passare da Intent o ottenerlo direttamente dai methods getter. Quindi, nell'attività di Detail_toko su ciascun button successivo / precedente, fare clic su incrementare la posizione di arrayslist per get i dati e quindi popolare in modo appropriato.

    Questo è il modo in cui passenetworking il vostro ArrayList di Passing Arraylist attraverso l'intento

    e invece di get il resto dei dati dall'intento di get i dati dal arrayslist.

    come arrayslist.get (indice).

    proprio come questo

      /********Instead of getting your values like this*******************/ String nama_toko = in.getStringExtra(TAG_NAMATOKO); String kategori = in.getStringExtra(TAG_KATEGORI); String email = in.getStringExtra(TAG_EMAIL); 

    / ************************ Utilizzare un metodo come qui indicato Come eseguire l'azione del button successivo? **************************** /

      //The method setvalue would be quite useful for you where you will pass the int j parameter to get appropriate values. If next button is clicked increment the j if previous button is clicked decrement it. and then display your values asusual. // Displaying all values on the screen lblNamatoko = (TextView) findViewById(R.id.namatoko); lblKategori = (TextView) findViewById(R.id.kategori); lblEmail = (TextView) findViewById(R.id.textemail); lblNamatoko.setText(nama_toko); lblKategori.setText(kategori); lblEmail.setText(email); 
    L'Android è un fan Android di Google, tutto su telefoni Android, Android Wear, Android Dev e applicazioni Android Games e così via.