Autore Topic: Riferirsi ad una TextView in layout differente  (Letto 655 volte)

Offline MrKrabs

  • Utente junior
  • **
  • Post: 94
  • Respect: +4
    • Mostra profilo
Riferirsi ad una TextView in layout differente
« il: 20 Gennaio 2011, 16:39:16 CET »
0
Ciao a tutti,
ho un problema con le view.

In miolayout.xml ho una ListView.

Poi ho listalayout.xml che contiene 2 TextView....con id=tv1 e id=tv2

Ora se sono nell'activity che richiama questo layout
Codice (Java): [Seleziona]
setContentView(R.layout.miolayout);  
come faccio a riferirmi alla TextView tv2?

Cosi non va...
Codice (Java): [Seleziona]
TextView tv2= (TextView)findViewById(R.id.tv2);

Offline MarcoDuff

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 1073
  • Respect: +202
    • Google+
    • marcoduff
    • Mostra profilo
    • MarcoDuff's Blog
  • Dispositivo Android:
    Samsung Galaxy Nexus
  • Play Store ID:
    MarcoDuff
  • Sistema operativo:
    Windows 7
Re:Riferirsi ad una TextView in layout differente
« Risposta #1 il: 20 Gennaio 2011, 17:11:03 CET »
0
Dove e come metti listalayout.xml?

Offline MrKrabs

  • Utente junior
  • **
  • Post: 94
  • Respect: +4
    • Mostra profilo
Re:Riferirsi ad una TextView in layout differente
« Risposta #2 il: 20 Gennaio 2011, 17:20:10 CET »
0
listalayout.xml è nella cartella layout come anche miolayout.xml

Codice (XML): [Seleziona]
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:orientation="horizontal"
        android:weightSum="10"
        >

        <TextView              
                android:id="@+id/tv1"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="8"
                android:textSize="15dp"
                android:textStyle="bold"
                android:textColor="#000000">
        </TextView>
        <TextView              
                android:id="@+id/tv2"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="2"
                android:textSize="15dp"
                android:textStyle="bold"
                android:textColor="#000000">
        </TextView>
</LinearLayout>
Codice (Java): [Seleziona]
public class Demo extends Activity {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.miolayout);

        ....  //qui vorrei settare il background di tv2 da codice


Offline MarcoDuff

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 1073
  • Respect: +202
    • Google+
    • marcoduff
    • Mostra profilo
    • MarcoDuff's Blog
  • Dispositivo Android:
    Samsung Galaxy Nexus
  • Play Store ID:
    MarcoDuff
  • Sistema operativo:
    Windows 7
Re:Riferirsi ad una TextView in layout differente
« Risposta #3 il: 20 Gennaio 2011, 17:24:33 CET »
0
Scusami, ma se nell'activity non usi/visualizzi quel layout come vorresti utilizzarne una view?

Puoi recuperare le view soltanto se sono state caricate nell'activity corrente!

Offline MrKrabs

  • Utente junior
  • **
  • Post: 94
  • Respect: +4
    • Mostra profilo
Re:Riferirsi ad una TextView in layout differente
« Risposta #4 il: 20 Gennaio 2011, 17:40:51 CET »
0
Intendo proprio questo.
Il problema è che listalayout.xml è il layout di ogni riga della lista.
Quindi da codice non posso modificare in nessun modo listalayout? anche se è il layout dell'adapter della lista presente in miolayout.xml?
 :-(
« Ultima modifica: 20 Gennaio 2011, 17:43:25 CET da davidelib »

Offline MarcoDuff

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 1073
  • Respect: +202
    • Google+
    • marcoduff
    • Mostra profilo
    • MarcoDuff's Blog
  • Dispositivo Android:
    Samsung Galaxy Nexus
  • Play Store ID:
    MarcoDuff
  • Sistema operativo:
    Windows 7
Re:Riferirsi ad una TextView in layout differente
« Risposta #5 il: 20 Gennaio 2011, 17:43:24 CET »
0
Certo che puoi... ma dovresti utilizzare l'adapter della lista, non la view!

Offline MrKrabs

  • Utente junior
  • **
  • Post: 94
  • Respect: +4
    • Mostra profilo
Re:Riferirsi ad una TextView in layout differente
« Risposta #6 il: 20 Gennaio 2011, 17:51:13 CET »
0
Codice (Java): [Seleziona]
db=new MyDatabase(getApplicationContext());
        db.open();
        String select = "SELECT * from products";
        c = db.mDb.rawQuery(select, null);
                startManagingCursor(c);
        adapter=new SimpleCursorAdapter(
                        this,
                        R.layout.listalayout,
                        c,
                        new String[]{"name","id"}, new int[]{R.id.tv1,R.id.tv2});
        listanomi.setAdapter(adapter);
        db.close();

ecco il mio adapter.
Io vorrei che se l'id risultasse 1 settare il background di tv2 rosso, se l'id risultasse 2 settare il background di tv2 blu.
ecco perchè volevo modificare da codice il background...ma come modifico quindi l'adapter?
forse prima mi son spiegato male
« Ultima modifica: 20 Gennaio 2011, 17:59:37 CET da davidelib »

Offline Nicola_D

  • Moderatore
  • Utente storico
  • *****
  • Post: 2479
  • SBAGLIATO!
  • Respect: +323
    • Github
    • Google+
    • nicoladorigatti
    • Mostra profilo
  • Dispositivo Android:
    Nexus 6p, Nexus 4, Nexus S, Nexus 7(2012)
  • Sistema operativo:
    Windows 7
Re:Riferirsi ad una TextView in layout differente
« Risposta #7 il: 20 Gennaio 2011, 18:13:01 CET »
0
ora ho capito cosa vuoi!
te hai un layout di activity in cui c'è una ListView (questo layout non lo consideriamo),
poi hai il layout di riga per ogni elemento della ListView; in questo layout ci sono due textView,e vuoi cambiare i background di una delle due tv....
Per fare questo devi implementarti il tuo CustomAdapter, e implementare il metodo getView.
Dai un occhio qui: [medio] ListView con layout personalizzato tramite un custom ArrayAdapter - Android Developers Italia
o qui: developerlife – Tutorials    &raquo; Android ListView and custom adapter
IMPORTANTE:NON RISPONDO A PROBLEMI VIA MESSAGGIO PRIVATO
LOGCAT: Non sai cos'è? -> Android Debug Bridge | Android Developers
               Dov'è in Eclipse? -> Window -> Open Prospective -> DDMS e guarda in basso!
[Obbligatorio] Logcat, questo sconosciuto! (Gruppo AndDev.it LOGTFO) - Android Developers Italia

Offline MrKrabs

  • Utente junior
  • **
  • Post: 94
  • Respect: +4
    • Mostra profilo
Re:Riferirsi ad una TextView in layout differente
« Risposta #8 il: 20 Gennaio 2011, 18:28:56 CET »
0
Hai capito alla perfezione!!
Grazie :-)

Cercherò di seguire il tutorial...