Autore Topic: Errore con ListView  (Letto 313 volte)

Offline oberdank

  • Utente normale
  • ***
  • Post: 287
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy Core LTE
  • Play Store ID:
    BuzzOne
  • Sistema operativo:
    Windows 8.1
Errore con ListView
« il: 08 Settembre 2014, 15:45:46 CEST »
0
Sto leggendo un manuale sulla programmazione Android, il seguente programma NON mi funziona, qualcuno sa' il perche?

Nel listato la keyword "onListItemClick" Eclipse la mette sottolineata in rosso, segno che c'e' un errore, ma che errore c'e'?

MainActivity.java
Codice (Java): [Seleziona]
package com.prove.provaproject_25_ter;

import android.support.v7.app.ActionBarActivity;
import android.app.*;
import android.os.*;
import android.view.*;
import android.view.MenuItem;
import android.widget.*;
import android.content.*;
import android.content.ContextWrapper;

public class MainActivity extends Activity {

        @Override
        protected void onCreate(Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);
                setContentView(R.layout.activity_main);
               
                String[] citta=new String[]{"Torino","Roma","Milano","Napoli","Firenze"};
              ArrayAdapter<String> adapter=new ArrayAdapter<String>(this, R.layout.row,citta);
              ListView listView = (ListView) findViewById(R.id.listview);
              listView.setAdapter(adapter);
               
        }
       
        // La keyword "onListItemClick" e' sottolineata in rosso, PERCHE?
        // Che errore c'e' ?
        @Override
        public void onListItemClick(ListView lv,View clickedView,int position,long id)
        {
                super.onListItemClick(lv,clickedView,position,id);
                TextView tv=(TextView) clickedView;
                Toast.makeText(getApplicationContext(),
                                "List item "+tv.getText()+" was clicked",
                                Toast.LENGTH_LONG).show();
        }
       
        @Override
        public boolean onCreateOptionsMenu(Menu menu) {
                // Inflate the menu; this adds items to the action bar if it is present.
                getMenuInflater().inflate(R.menu.main, menu);
                return true;
        }

        @Override
        public boolean onOptionsItemSelected(MenuItem item) {
                // Handle action bar item clicks here. The action bar will
                // automatically handle clicks on the Home/Up button, so long
                // as you specify a parent activity in AndroidManifest.xml.
                int id = item.getItemId();
                if (id == R.id.action_settings) {
                        return true;
                }
                return super.onOptionsItemSelected(item);
        }
       
}


Post unito: 08 Settembre 2014, 16:03:25 CEST
Nel messaggio precedente mi sono dimenticato di allegare i file XML, eccoli:

activity_main.xml
Codice (XML): [Seleziona]
<ListView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/listview"
    android:layout_width="match_parent"
    android:layout_height="match_parent"/>

row.xml
Codice (XML): [Seleziona]
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:textSize="30dp"
    />
« Ultima modifica: 08 Settembre 2014, 16:03:25 CEST da oberdank, Reason: Merged DoublePost »

Offline Sakazaki

  • Utente normale
  • ***
  • Post: 396
  • Respect: +74
    • Mostra profilo
  • Dispositivo Android:
    Sony xperia Z
  • Play Store ID:
    Saka Labs
  • Sistema operativo:
    Windows 8
Re:Errore con ListView
« Risposta #1 il: 08 Settembre 2014, 17:11:05 CEST »
0
Perché devi estendere da ListActivity (che ha un metodo onListItemClick di cui puoi fare l'Override), e non da Activity.

Offline BlackJad

  • Utente junior
  • **
  • Post: 59
  • Respect: +6
    • Google+
    • michele-ziparo/4/825/a99/
    • blackjad82
    • Mostra profilo
    • Datawit Systems
  • Dispositivo Android:
    Samsung Galaxy S3
  • Play Store ID:
    Michele Ziparo
  • Sistema operativo:
    Windows 8.1
Re:Errore con ListView
« Risposta #2 il: 17 Settembre 2014, 00:04:00 CEST »
0
Oppure, se vuoi mantenere una Activity normale come ora, devi impostare il listener sul tuo oggetto listview. Il codice è identico solo che non fai override ma listview.setOnItemClickListener ... ecc