Visualizzazione stampabile
-
Selezionare stringhe
Ciao a tutti! :p
Prima di porvi la mia domanda vorrei premettere che quella che sto facendo è la mia prima app seria, per cui vi chiedo di spiegarmi ogni cosa che occorre fare e il motivo (non voglio solo un po' di codice). So programmare HTML/PHP/JS quindi le basi della programmazione le so. Conosco l'inglese per cui mi sono letto la guida ufficiale di Android (grazie alla quale cono riuscito ad imparare le basi di Android) e ho guardato un paio di video su YT.
Bene, ecco ciò che vorrei fare...
Avete presente quelle app di citazioni? Bene, vorrei fare la stessa cosa, quindi una TextView contenente la citazione, due bottoni "Avanti" e "Indietro", un bottone "Random" e una SeekBar.
Preferirei iniziare dai pulsanti "Avanti" e "Indietro".
Con jQuery si possono selezionare tutti gli elementi che iniziano con un determinato valore. Ad esempio se abbiamo "A1", "A2", "B3" e selezioniamo gli elementi che iniziano con "A", il programma seleziona "A1" e "A2". Con Java (Android) è possibile fare la stessa cosa? Quindi selezionare tutte le stringhe il cui valore name inizia per "citazione_"?
Se sì, come? Se non si può fare, quale metodo posso utilizzare per selezionare le citazioni?
Per quanto riguarda le azioni dei pulsanti ci posso provare (ma non vi assicuro niente rotfl).
Grazie mille! :D
-
Quote:
Originariamente inviato da
Lucart98
Ciao a tutti! :p
Prima di porvi la mia domanda vorrei premettere che quella che sto facendo è la mia prima app seria, per cui vi chiedo di spiegarmi ogni cosa che occorre fare e il motivo (non voglio solo un po' di codice). So programmare HTML/PHP/JS quindi le basi della programmazione le so. Conosco l'inglese per cui mi sono letto la guida ufficiale di Android (grazie alla quale cono riuscito ad imparare le basi di Android) e ho guardato un paio di video su YT.
Bene, ecco ciò che vorrei fare...
Avete presente quelle app di citazioni? Bene, vorrei fare la stessa cosa, quindi una TextView contenente la citazione, due bottoni "Avanti" e "Indietro", un bottone "Random" e una SeekBar.
Preferirei iniziare dai pulsanti "Avanti" e "Indietro".
Con jQuery si possono selezionare tutti gli elementi che iniziano con un determinato valore. Ad esempio se abbiamo "A1", "A2", "B3" e selezioniamo gli elementi che iniziano con "A", il programma seleziona "A1" e "A2". Con Java (Android) è possibile fare la stessa cosa? Quindi selezionare tutte le stringhe il cui valore name inizia per "citazione_"?
Se sì, come? Se non si può fare, quale metodo posso utilizzare per selezionare le citazioni?
Per quanto riguarda le azioni dei pulsanti ci posso provare (ma non vi assicuro niente rotfl).
Grazie mille! :D
Dipende, come sono memorizzate le stringhe?
-
Quote:
Originariamente inviato da
iClaude76
Dipende, come sono memorizzate le stringhe?
Ho un po' cambiato il metodo...
Quello che chiedevo prima erano stringhe del tipo:
codice:
<string name="citazione_1">cit 1</string>
<string name="citazione_2">cit 2</string>
Questo finché non ho scoperto string-array, per cui ho modificato il codice in:
codice:
<string-array name="citazioni">
<item>cit 1</item>
<item>cit 2</item>
</string-array>
E li ho stampati tramite un ListView:
codice:
<ListView
android:id="[chiocciola]+id/ListViewCitazioni"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:dividerHeight="5.0sp"
android:layout_margin="5.0sp"
android:divider="[chiocciola]color/silver"
android:background="[chiocciola]android:color/white" >
</ListView>
codice:
setContentView(R.layout.activity_home);
String[] citazioni = getResources().getStringArray(R.array.citazioni);
ArrayAdapter<String> adapter= new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1,citazioni);
ListView listView= (ListView)findViewById(R.id.ListViewCitazioni);
listView.setAdapter(adapter);
Funziona, ma vorrei fare un'altra cosa (forse viene meglio con un while): inserire un paio di pulsanti accanto ogni citazione.
Riusciresti a darmi una dritta?
Grazie mille :D
PS: nel codice ho scritto "[chiocciola]" per via dell'anti-spam
EDIT:
Sono riuscito a creare un ciclo for.
Ecco il codice:
codice:
String[] citazioni = getResources().getStringArray(R.array.citazioni);
List<String> CitazioniOutput = new ArrayList<String>();
for (String value : citazioni) {
CitazioniOutput.add(value+"\n<Button android:layout_width=\"wrap_content\" android:layout_height=\"wrap_content\" android:text=\"@string/share\" android:onClick=\"Condividi("+value+")\" />");
}
ArrayAdapter<String> adapter= new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1,CitazioniOutput);
ListView listView= (ListView)findViewById(R.id.ListViewCitazioni);
listView.setAdapter(adapter);
C'è un "piccolo" problema: il pulsante viene (giustamente) interpretato come stringa, per cui viene scritto il codice del pulsante.
Come posso aggiustare?
-
È normale che viene interpretato come una stringa di testo anziché come View. Se accanto ad ogni elemento della ListView vuoi inserire i due Button devi crearti un Adapter personalizzato, quindi, non puoi più usare quello predefinito di Android (simple_list_item_1). Ad ogni modo, le View é preferibile crearle da XML.
-
secondo me sarebbe meglio memorizzare le stringhe in un database sql cosi le manipoli come vuoi senza tanti casini