Autore Topic: listview come gestire onclickitem ?  (Letto 2124 volte)

Offline ALEX88-ANDR0!D

  • Utente normale
  • ***
  • Post: 173
  • The Special One
  • Respect: +13
    • Google+
    • droidev88
    • Mostra profilo
  • Dispositivo Android:
    HTC DESIRE HD
  • Sistema operativo:
    WINDOWS 7
listview come gestire onclickitem ?
« il: 13 Maggio 2011, 02:27:42 CEST »
0
ciao a tutti , qualche giorno fa ho iniziato un topic "come rendere una list view i18n http://www.anddev.it/index.php/topic,3100.0.html , ringrazio ancora chi mi ha aiutato (bradiapao nicola d) , inizialmente pensavo che far partire una nuova activity fosse semplice , però dopo alcune prove mi sono bloccato . mi potete dire se come l'ultima prova di  implementare la gestione OnItemClickListener è corretta (premetto che dopo il click sulla righa 0 della listview fa mandare in crash l'app , a fondo topic vi posto il logcat.

Codice (Java): [Seleziona]
ListView lv = getListView();

        lv.setOnItemClickListener(new OnItemClickListener() {
               
                @Override
            public void onItemClick(AdapterView<?> parent, View v, int position, long id) {
                       
                        if (position==0){      
                                launchSeason();
                        }
                         else if(position==1){
                     launchStat();
             }
                }
               

        });
       
        registerForContextMenu(lv);
    }
public void launchSeason(){
        Intent i = new Intent(this,PaginaDue.class);
        startActivity(i);
         }
    public void launchStat(){
        Intent i = new Intent(this,PaginaDue.class);
        startActivity(i);
         }

vi posto  l'intero file mainactivity.java
Codice (Java): [Seleziona]
package it.itiscastelli.es5a;



import it.itiscastelli.es5a.R;

import android.app.ListActivity;
import android.content.Intent;
import android.os.Bundle;
import android.view.ContextMenu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.view.ContextMenu.ContextMenuInfo;
import android.widget.AdapterView;

import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;
import android.widget.AdapterView.AdapterContextMenuInfo;
import android.widget.AdapterView.OnItemClickListener;


public class MainActivity extends ListActivity {
       
    @Override
    public void onCreate(Bundle savedInstanceState) {
       
        super.onCreate(savedInstanceState);
       
        setListAdapter(new MioAdapter(this));
       
        ListView lv = getListView();

        lv.setOnItemClickListener(new OnItemClickListener() {
               
                @Override
            public void onItemClick(AdapterView<?> parent, View v, int position, long id) {
                       
                        if (position==0){      
                                launchSeason();
                        }
                         else if(position==1){
                     launchStat();
             }
                }
               

        });
       
        registerForContextMenu(lv);
    }
   
    @Override
    public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) {
       
                super.onCreateContextMenu(menu, v, menuInfo);
               
                MenuInflater inflater = getMenuInflater();
                inflater.inflate(R.menu.context_menu, menu);
    }
   
    @Override
    public boolean onContextItemSelected(MenuItem item) {
       
                AdapterContextMenuInfo info = (AdapterContextMenuInfo) item.getMenuInfo();
               
                TextView txtTitolo = (TextView) info.targetView.findViewById(R.id.titolo);
               
                switch (item.getItemId()) {
               
                        case R.id.chiama:
                                toast("Chiama " + info.position + ": " + txtTitolo.getText());
                        break;
                       
                        case R.id.elimina:
                                toast("Elimina " + info.position + ": " + txtTitolo.getText());
                        break;
                }
               
                return super.onContextItemSelected(item);
    }
   
   
    private void toast(String text) {
       
        Toast.makeText(getApplicationContext(), text , Toast.LENGTH_SHORT).show();
    }
   
    public void launchSeason(){
        Intent i = new Intent(this,PaginaDue.class);
        startActivity(i);
         }
    public void launchStat(){
        Intent i = new Intent(this,PaginaDue.class);
        startActivity(i);
         }
   
}

PaginaDue.java
Codice (Java): [Seleziona]
package it.itiscastelli.es5a;

import android.os.Bundle;


public class PaginaDue extends MainActivity {

        @Override
        public void onCreate(Bundle savedInstanceState){
                // TODO Auto-generated method stub//
                super.onCreate(savedInstanceState);
                setContentView(R.layout.pagina2);
       
        }
       
    protected String getActivityName(){
        return "PaginaDue";
    }  
       

}

infine il logcat completo
Codice (Java): [Seleziona]
05-13 00:21:26.440: INFO/ActivityManager(59): Starting activity: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10200000 cmp=it.itiscastelli.es5a/.MainActivity }
05-13 00:21:26.610: INFO/ActivityManager(59): Start proc it.itiscastelli.es5a for activity it.itiscastelli.es5a/.MainActivity: pid=762 uid=10091 gids={}
05-13 00:21:28.678: DEBUG/SntpClient(59): request time failed: java.net.SocketException: Address family not supported by protocol
05-13 00:21:28.898: DEBUG/dalvikvm(762): GC_EXTERNAL_ALLOC freed 803 objects / 58792 bytes in 86ms
05-13 00:21:29.288: INFO/ActivityManager(59): Displayed activity it.itiscastelli.es5a/.MainActivity: 2751 ms (total 934268 ms)
05-13 00:21:31.848: INFO/ActivityManager(59): Starting activity: Intent { cmp=it.itiscastelli.es5a/.PaginaDue }
05-13 00:21:31.968: DEBUG/AndroidRuntime(762): Shutting down VM
05-13 00:21:31.968: WARN/dalvikvm(762): threadid=1: thread exiting with uncaught exception (group=0x4001d800)
05-13 00:21:32.008: ERROR/AndroidRuntime(762): FATAL EXCEPTION: main
05-13 00:21:32.008: ERROR/AndroidRuntime(762): java.lang.RuntimeException: Unable to start activity ComponentInfo{it.itiscastelli.es5a/it.itiscastelli.es5a.PaginaDue}: java.lang.RuntimeException: Your content must have a ListView whose id attribute is 'android.R.id.list'
05-13 00:21:32.008: ERROR/AndroidRuntime(762):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2663)
05-13 00:21:32.008: ERROR/AndroidRuntime(762):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679)
05-13 00:21:32.008: ERROR/AndroidRuntime(762):     at android.app.ActivityThread.access$2300(ActivityThread.java:125)
05-13 00:21:32.008: ERROR/AndroidRuntime(762):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033)
05-13 00:21:32.008: ERROR/AndroidRuntime(762):     at android.os.Handler.dispatchMessage(Handler.java:99)
05-13 00:21:32.008: ERROR/AndroidRuntime(762):     at android.os.Looper.loop(Looper.java:123)
05-13 00:21:32.008: ERROR/AndroidRuntime(762):     at android.app.ActivityThread.main(ActivityThread.java:4627)
05-13 00:21:32.008: ERROR/AndroidRuntime(762):     at java.lang.reflect.Method.invokeNative(Native Method)
05-13 00:21:32.008: ERROR/AndroidRuntime(762):     at java.lang.reflect.Method.invoke(Method.java:521)
05-13 00:21:32.008: ERROR/AndroidRuntime(762):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
05-13 00:21:32.008: ERROR/AndroidRuntime(762):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
05-13 00:21:32.008: ERROR/AndroidRuntime(762):     at dalvik.system.NativeStart.main(Native Method)
05-13 00:21:32.008: ERROR/AndroidRuntime(762): Caused by: java.lang.RuntimeException: Your content must have a ListView whose id attribute is 'android.R.id.list'
05-13 00:21:32.008: ERROR/AndroidRuntime(762):     at android.app.ListActivity.onContentChanged(ListActivity.java:245)
05-13 00:21:32.008: ERROR/AndroidRuntime(762):     at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:201)
05-13 00:21:32.008: ERROR/AndroidRuntime(762):     at android.app.Activity.setContentView(Activity.java:1647)
05-13 00:21:32.008: ERROR/AndroidRuntime(762):     at it.itiscastelli.es5a.PaginaDue.onCreate(PaginaDue.java:12)
05-13 00:21:32.008: ERROR/AndroidRuntime(762):     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
05-13 00:21:32.008: ERROR/AndroidRuntime(762):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627)
05-13 00:21:32.008: ERROR/AndroidRuntime(762):     ... 11 more
05-13 00:21:32.018: WARN/ActivityManager(59):   Force finishing activity it.itiscastelli.es5a/.PaginaDue
05-13 00:21:32.028: WARN/ActivityManager(59):   Force finishing activity it.itiscastelli.es5a/.MainActivity
05-13 00:21:32.528: WARN/ActivityManager(59): Activity pause timeout for HistoryRecord{45184770 it.itiscastelli.es5a/.PaginaDue}
05-13 00:21:34.618: INFO/Process(762): Sending signal. PID: 762 SIG: 9
05-13 00:21:35.488: INFO/WindowManager(59): WIN DEATH: Window{4511f188 it.itiscastelli.es5a/it.itiscastelli.es5a.MainActivity paused=true}
05-13 00:21:35.498: INFO/ActivityManager(59): Process it.itiscastelli.es5a (pid 762) has died.
05-13 00:21:43.068: INFO/EventLogService(174): Aggregate from 1305244302604 (log), 1305244302604 (data)

la parte relativa alla gestione click lo presa dahttp://www.anddev.it/index.php/topic,1131.msg7522.html#msg7522
vi ringrazio in anticipo , ciao
« Ultima modifica: 13 Maggio 2011, 02:34:50 CEST da ALEX88-ANDR0!D »
È stata trovata una soluzione al tuo problema?
Evidenzia il post più utile premendo . È un ottimo modo per ringraziare chi ti ha aiutato ;).
E se hai aperto tu il thread marcalo come risolto cliccando !

Offline Ricky`

  • Amministratore
  • Utente storico
  • *****
  • Post: 3489
  • Respect: +506
    • Github
    • Google+
    • rciovati
    • Mostra profilo
Re:listview come gestire onclickitem ?
« Risposta #1 il: 13 Maggio 2011, 06:49:09 CEST »
+1
Codice: [Seleziona]
05-13 00:21:32.008: ERROR/AndroidRuntime(762): java.lang.RuntimeException: Unable to start activity ComponentInfo{it.itiscastelli.es5a/it.itiscastelli.es5a.PaginaDue}: java.lang.RuntimeException: Your content must have a ListView whose id attribute is 'android.R.id.list'

L'eccezione è abbastanza eloquente: nel layout la listview deve avere id android.R.id.list.
Un altra soluzione sarebbe, se non ti serve personalizzare il layout dell'activity, non fare nessun setContentView.

Offline blackgin

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 1387
  • Respect: +164
    • Google+
    • blackgins
    • blackginsoft
    • Mostra profilo
  • Dispositivo Android:
    Galaxy Nexus
  • Sistema operativo:
    Mac OSX 10.8
Re:listview come gestire onclickitem ?
« Risposta #2 il: 13 Maggio 2011, 13:36:39 CEST »
+1
L'eccezione è abbastanza eloquente: nel layout la listview deve avere id android.R.id.list.
Un altra soluzione sarebbe, se non ti serve personalizzare il layout dell'activity, non fare nessun setContentView.

Se invece ti serve personalizzarla e non vuoi usare quell'id puoi estendere semplicemente Activity al posto di ListActivity
Postate il LogCat LogCat LogCat LogCat LogCat

Offline ALEX88-ANDR0!D

  • Utente normale
  • ***
  • Post: 173
  • The Special One
  • Respect: +13
    • Google+
    • droidev88
    • Mostra profilo
  • Dispositivo Android:
    HTC DESIRE HD
  • Sistema operativo:
    WINDOWS 7
Re:listview come gestire onclickitem ?
« Risposta #3 il: 13 Maggio 2011, 19:48:39 CEST »
0
inanzitutto vi ringrazio , pultroppo però continuo ad avere lo stesso problema

come da consiglio
Citazione
nel layout la listview deve avere id android.R.id.list.
ho modificato l'id dell'listview da listview a list  rendendo di fatto il main.xml così
Codice (XML): [Seleziona]
<?xml version="1.0" encoding="utf-8"?>
<ListView xmlns:android="http://schemas.android.com/apk/res/android"
   android:layout_width="fill_parent"
   android:layout_height="fill_parent"
   android:columnWidth="90dp"
   android:numColumns="auto_fit"
   android:verticalSpacing="10dp"
   android:horizontalSpacing="10dp"
   android:stretchMode="columnWidth"
   android:gravity="center"
android:id="@id/android:list"/>
in quanto ho  trovato delle discussioni vedi : http://www.mokasocial.com/2010/08/listactivity-and-missing-android-r-id-list/ (ho provato pure  modificacandoo l'id così
Citazione
Codice (XML): [Seleziona]
android:id="@android:id/list"/>
come consigliato da un topic di anddev.org http://www.anddev.org/xml-listview_androidridlist_-t290.html , ma pultroppo non risolvo.
il logcat mi dice sempre
Citazione
05-13 17:53:37.403: INFO/ActivityManager(59): Starting activity: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10200000 cmp=it.itiscastelli.es5a/.MainActivity }
05-13 17:53:38.623: INFO/ActivityManager(59): Displayed activity it.itiscastelli.es5a/.MainActivity: 942 ms (total 942 ms)
05-13 17:53:40.213: INFO/ActivityManager(59): Starting activity: Intent { cmp=it.itiscastelli.es5a/.PaginaDue }
05-13 17:53:40.283: DEBUG/AndroidRuntime(338): Shutting down VM
05-13 17:53:40.283: WARN/dalvikvm(338): threadid=1: thread exiting with uncaught exception (group=0x4001d800)
05-13 17:53:40.313: ERROR/AndroidRuntime(338): FATAL EXCEPTION: main
05-13 17:53:40.313: ERROR/AndroidRuntime(338): java.lang.RuntimeException: Unable to start activity ComponentInfo{it.itiscastelli.es5a/it.itiscastelli.es5a.PaginaDue}: java.lang.RuntimeException: Your content must have a ListView whose id attribute is 'android.R.id.list'
05-13 17:53:40.313: ERROR/AndroidRuntime(338):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2663)
05-13 17:53:40.313: ERROR/AndroidRuntime(338):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679)
05-13 17:53:40.313: ERROR/AndroidRuntime(338):     at android.app.ActivityThread.access$2300(ActivityThread.java:125)
05-13 17:53:40.313: ERROR/AndroidRuntime(338):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033)
05-13 17:53:40.313: ERROR/AndroidRuntime(338):     at android.os.Handler.dispatchMessage(Handler.java:99)
05-13 17:53:40.313: ERROR/AndroidRuntime(338):     at android.os.Looper.loop(Looper.java:123)
05-13 17:53:40.313: ERROR/AndroidRuntime(338):     at android.app.ActivityThread.main(ActivityThread.java:4627)
05-13 17:53:40.313: ERROR/AndroidRuntime(338):     at java.lang.reflect.Method.invokeNative(Native Method)
05-13 17:53:40.313: ERROR/AndroidRuntime(338):     at java.lang.reflect.Method.invoke(Method.java:521)
05-13 17:53:40.313: ERROR/AndroidRuntime(338):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
05-13 17:53:40.313: ERROR/AndroidRuntime(338):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
05-13 17:53:40.313: ERROR/AndroidRuntime(338):     at dalvik.system.NativeStart.main(Native Method)
05-13 17:53:40.313: ERROR/AndroidRuntime(338): Caused by: java.lang.RuntimeException: Your content must have a ListView whose id attribute is 'android.R.id.list'
05-13 17:53:40.313: ERROR/AndroidRuntime(338):     at android.app.ListActivity.onContentChanged(ListActivity.java:245)
05-13 17:53:40.313: ERROR/AndroidRuntime(338):     at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:201)
05-13 17:53:40.313: ERROR/AndroidRuntime(338):     at android.app.Activity.setContentView(Activity.java:1647)
05-13 17:53:40.313: ERROR/AndroidRuntime(338):     at it.itiscastelli.es5a.PaginaDue.onCreate(PaginaDue.java:12)
05-13 17:53:40.313: ERROR/AndroidRuntime(338):     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
05-13 17:53:40.313: ERROR/AndroidRuntime(338):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627)
05-13 17:53:40.313: ERROR/AndroidRuntime(338):     ... 11 more
05-13 17:53:40.353: WARN/ActivityManager(59):   Force finishing activity it.itiscastelli.es5a/.PaginaDue
05-13 17:53:40.363: WARN/ActivityManager(59):   Force finishing activity it.itiscastelli.es5a/.MainActivity
05-13 17:53:40.853: INFO/ARMAssembler(59): generated scanline__00000077:03515104_00000000_00000000 [ 33 ipp] (47 ins) at [0x339ef0:0x339fac] in 467411 ns
05-13 17:53:40.872: WARN/ActivityManager(59): Activity pause timeout for HistoryRecord{4518f5e0 it.itiscastelli.es5a/.PaginaDue}
05-13 17:53:43.553: INFO/Process(338): Sending signal. PID: 338 SIG: 9
05-13 17:53:43.573: INFO/ActivityManager(59): Process it.itiscastelli.es5a (pid 338) has died.
05-13 17:53:43.573: INFO/WindowManager(59): WIN DEATH: Window{450e3a08 it.itiscastelli.es5a/it.itiscastelli.es5a.MainActivity paused=true}
05-13 17:53:43.644: WARN/InputManagerService(59): Got RemoteException sending setActive(false) notification to pid 338 uid 10091
dimenticavo , ancora prima dei due test , avevo provato a mod l'id semplicemente in
anche qui però arriva lo stesso log
Citazione
05-13 17:59:01.582: INFO/ActivityManager(59): Starting activity: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10200000 cmp=it.itiscastelli.es5a/.MainActivity }
05-13 17:59:01.982: INFO/ActivityManager(59): Start proc it.itiscastelli.es5a for activity it.itiscastelli.es5a/.MainActivity: pid=372 uid=10091 gids={}
05-13 17:59:03.873: DEBUG/dalvikvm(372): GC_EXTERNAL_ALLOC freed 737 objects / 56208 bytes in 187ms
05-13 17:59:04.223: INFO/ActivityManager(59): Displayed activity it.itiscastelli.es5a/.MainActivity: 2372 ms (total 323989 ms)
05-13 17:59:06.293: INFO/ActivityManager(59): Starting activity: Intent { cmp=it.itiscastelli.es5a/.PaginaDue }
05-13 17:59:06.413: DEBUG/AndroidRuntime(372): Shutting down VM
05-13 17:59:06.413: WARN/dalvikvm(372): threadid=1: thread exiting with uncaught exception (group=0x4001d800)
05-13 17:59:06.453: ERROR/AndroidRuntime(372): FATAL EXCEPTION: main
05-13 17:59:06.453: ERROR/AndroidRuntime(372): java.lang.RuntimeException: Unable to start activity ComponentInfo{it.itiscastelli.es5a/it.itiscastelli.es5a.PaginaDue}: java.lang.RuntimeException: Your content must have a ListView whose id attribute is 'android.R.id.list'
05-13 17:59:06.453: ERROR/AndroidRuntime(372):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2663)
05-13 17:59:06.453: ERROR/AndroidRuntime(372):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679)
05-13 17:59:06.453: ERROR/AndroidRuntime(372):     at android.app.ActivityThread.access$2300(ActivityThread.java:125)
05-13 17:59:06.453: ERROR/AndroidRuntime(372):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033)
05-13 17:59:06.453: ERROR/AndroidRuntime(372):     at android.os.Handler.dispatchMessage(Handler.java:99)
05-13 17:59:06.453: ERROR/AndroidRuntime(372):     at android.os.Looper.loop(Looper.java:123)
05-13 17:59:06.453: ERROR/AndroidRuntime(372):     at android.app.ActivityThread.main(ActivityThread.java:4627)
05-13 17:59:06.453: ERROR/AndroidRuntime(372):     at java.lang.reflect.Method.invokeNative(Native Method)
05-13 17:59:06.453: ERROR/AndroidRuntime(372):     at java.lang.reflect.Method.invoke(Method.java:521)
05-13 17:59:06.453: ERROR/AndroidRuntime(372):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
05-13 17:59:06.453: ERROR/AndroidRuntime(372):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
05-13 17:59:06.453: ERROR/AndroidRuntime(372):     at dalvik.system.NativeStart.main(Native Method)
05-13 17:59:06.453: ERROR/AndroidRuntime(372): Caused by: java.lang.RuntimeException: Your content must have a ListView whose id attribute is 'android.R.id.list'
05-13 17:59:06.453: ERROR/AndroidRuntime(372):     at android.app.ListActivity.onContentChanged(ListActivity.java:245)
05-13 17:59:06.453: ERROR/AndroidRuntime(372):     at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:201)
05-13 17:59:06.453: ERROR/AndroidRuntime(372):     at android.app.Activity.setContentView(Activity.java:1647)
05-13 17:59:06.453: ERROR/AndroidRuntime(372):     at it.itiscastelli.es5a.PaginaDue.onCreate(PaginaDue.java:12)
05-13 17:59:06.453: ERROR/AndroidRuntime(372):     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
05-13 17:59:06.453: ERROR/AndroidRuntime(372):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627)
05-13 17:59:06.453: ERROR/AndroidRuntime(372):     ... 11 more
05-13 17:59:06.473: WARN/ActivityManager(59):   Force finishing activity it.itiscastelli.es5a/.PaginaDue
05-13 17:59:06.483: WARN/ActivityManager(59):   Force finishing activity it.itiscastelli.es5a/.MainActivity
05-13 17:59:06.983: WARN/ActivityManager(59): Activity pause timeout for HistoryRecord{4507dd58 it.itiscastelli.es5a/.PaginaDue}
05-13 17:59:11.763: INFO/Process(372): Sending signal. PID: 372 SIG: 9
05-13 17:59:11.843: INFO/WindowManager(59): WIN DEATH: Window{450cdaf0 it.itiscastelli.es5a/it.itiscastelli.es5a.MainActivity paused=true}
05-13 17:59:11.843: INFO/ActivityManager(59): Process it.itiscastelli.es5a (pid 372) has died.
05-13 17:59:18.142: WARN/ActivityManager(59): Activity destroy timeout for HistoryRecord{450108f8 it.itiscastelli.es5a/.MainActivity}
05-13 17:59:18.142: WARN/ActivityManager(59): Activity destroy timeout for HistoryRecord{4507dd58 it.itiscastelli.es5a/.PaginaDue}
----
se nella seconda activity chiamata per es Pagina2.java tolgo la parte
Citazione
Codice (XML): [Seleziona]
setContentView(R.layout.pagina2);
, l'errore sparisce , però al click non appare nulla ovviamente , però dovrei  far visualizzare dopo il click una seconda pagina con alcune informazioni (textview , button , ecc... ).

il terzo tentativo (proposto da blackgin) cioè  cambiare 
Citazione
Codice (XML): [Seleziona]
public class MainActivity extends ListActivity {
in
Citazione
Codice (XML): [Seleziona]
public class MainActivity extends Activity {
mi provoca diversi errori , sia in mainactivity.java che in pagina2.java quindi
ho inserito negli import in MainActivity la seguente stringa
Codice (Java): [Seleziona]
import android.app.Activity; per risolvere parte dei  problemi così mettendo aposto completamente gli errori in pagina2.java ed alcuni in MainActivity   

in pratica mi restano questi due errori
Citazione
  • Description   Resource   Path   Location   Type
    The method getListView() is undefined for the type MainActivity
  • Description   Resource   Path   Location   Type
    The method setListAdapter(MioAdapter) is undefined for the type MainActivity
provando ad usare il quick fix  seleziono
Citazione
  • Create method 'getListView()'
  • create method 'setListAdapter(MioAdapter)'
quindi mi viene detto con un warn che l'import android.app.ListActivity non viene usato , quindi   lo cancello
infine provando l'app , subito dopo il click l'app mi va in crash , con il logcat che dice
Citazione
05-13 17:43:03.469: INFO/ActivityManager(59): Starting activity: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10200000 cmp=it.itiscastelli.es5a/.MainActivity }
05-13 17:43:03.809: INFO/ActivityManager(59): Start proc it.itiscastelli.es5a for activity it.itiscastelli.es5a/.MainActivity: pid=699 uid=10091 gids={}
05-13 17:43:04.699: DEBUG/AndroidRuntime(699): Shutting down VM
05-13 17:43:04.699: WARN/dalvikvm(699): threadid=1: thread exiting with uncaught exception (group=0x4001d800)
05-13 17:43:04.729: ERROR/AndroidRuntime(699): FATAL EXCEPTION: main
05-13 17:43:04.729: ERROR/AndroidRuntime(699): java.lang.RuntimeException: Unable to start activity ComponentInfo{it.itiscastelli.es5a/it.itiscastelli.es5a.MainActivity}: java.lang.NullPointerException
05-13 17:43:04.729: ERROR/AndroidRuntime(699):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2663)
05-13 17:43:04.729: ERROR/AndroidRuntime(699):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679)
05-13 17:43:04.729: ERROR/AndroidRuntime(699):     at android.app.ActivityThread.access$2300(ActivityThread.java:125)
05-13 17:43:04.729: ERROR/AndroidRuntime(699):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033)
05-13 17:43:04.729: ERROR/AndroidRuntime(699):     at android.os.Handler.dispatchMessage(Handler.java:99)
05-13 17:43:04.729: ERROR/AndroidRuntime(699):     at android.os.Looper.loop(Looper.java:123)
05-13 17:43:04.729: ERROR/AndroidRuntime(699):     at android.app.ActivityThread.main(ActivityThread.java:4627)
05-13 17:43:04.729: ERROR/AndroidRuntime(699):     at java.lang.reflect.Method.invokeNative(Native Method)
05-13 17:43:04.729: ERROR/AndroidRuntime(699):     at java.lang.reflect.Method.invoke(Method.java:521)
05-13 17:43:04.729: ERROR/AndroidRuntime(699):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
05-13 17:43:04.729: ERROR/AndroidRuntime(699):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
05-13 17:43:04.729: ERROR/AndroidRuntime(699):     at dalvik.system.NativeStart.main(Native Method)
05-13 17:43:04.729: ERROR/AndroidRuntime(699): Caused by: java.lang.NullPointerException
05-13 17:43:04.729: ERROR/AndroidRuntime(699):     at it.itiscastelli.es5a.MainActivity.onCreate(MainActivity.java:36)
05-13 17:43:04.729: ERROR/AndroidRuntime(699):     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
05-13 17:43:04.729: ERROR/AndroidRuntime(699):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627)
05-13 17:43:04.729: ERROR/AndroidRuntime(699):     ... 11 more
05-13 17:43:04.739: WARN/ActivityManager(59):   Force finishing activity it.itiscastelli.es5a/.MainActivity
05-13 17:43:05.249: WARN/ActivityManager(59): Activity pause timeout for HistoryRecord{45008890 it.itiscastelli.es5a/.MainActivity}
05-13 17:43:16.073: WARN/ActivityManager(59): Activity destroy timeout for HistoryRecord{45008890 it.itiscastelli.es5a/.MainActivity}

ancora ringrazio in anticipo chi mi aiuti  nel risolvere questo problema ... ciao  :-)
« Ultima modifica: 13 Maggio 2011, 20:02:49 CEST da ALEX88-ANDR0!D, Reason: piccole correzioni ... »
È stata trovata una soluzione al tuo problema?
Evidenzia il post più utile premendo . È un ottimo modo per ringraziare chi ti ha aiutato ;).
E se hai aperto tu il thread marcalo come risolto cliccando !

Offline Ricky`

  • Amministratore
  • Utente storico
  • *****
  • Post: 3489
  • Respect: +506
    • Github
    • Google+
    • rciovati
    • Mostra profilo
Re:listview come gestire onclickitem ?
« Risposta #4 il: 13 Maggio 2011, 19:57:25 CEST »
0
Non devi creare tu quei metodi.
Devi semplicemente fare un findViewById per ottenere un riferimento alla ListView e poi settargli l'adapter con il metodo setAdapter.

Offline ALEX88-ANDR0!D

  • Utente normale
  • ***
  • Post: 173
  • The Special One
  • Respect: +13
    • Google+
    • droidev88
    • Mostra profilo
  • Dispositivo Android:
    HTC DESIRE HD
  • Sistema operativo:
    WINDOWS 7
Re:listview come gestire onclickitem ?
« Risposta #5 il: 13 Maggio 2011, 20:04:50 CEST »
0
Non devi creare tu quei metodi.
Devi semplicemente fare un findViewById per ottenere un riferimento alla ListView e poi settargli l'adapter con il metodo setAdapter.

ciao richy , provo subito ...

è corretto implementarlo in questo modo ?

lv=(ListView)findViewById(R.id.list);
       lv.setAdapter();

dentro la parentesi , devo ved il move dell'adapter , però non riesco a trovarlo  :-[
« Ultima modifica: 13 Maggio 2011, 20:27:48 CEST da ALEX88-ANDR0!D »
È stata trovata una soluzione al tuo problema?
Evidenzia il post più utile premendo . È un ottimo modo per ringraziare chi ti ha aiutato ;).
E se hai aperto tu il thread marcalo come risolto cliccando !

Offline Ricky`

  • Amministratore
  • Utente storico
  • *****
  • Post: 3489
  • Respect: +506
    • Github
    • Google+
    • rciovati
    • Mostra profilo
Re:listview come gestire onclickitem ?
« Risposta #6 il: 13 Maggio 2011, 20:37:35 CEST »
0
Codice (Java): [Seleziona]
lv=(ListView)findViewById(R.id.list);
lv.setAdapter(new MioAdapter(this));

ricordati che se hai mantenuto nel file di layout l'id della ListView android:id="@id/android:list" devi mettere android.R.id.list nel findViewById

Offline blackgin

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 1387
  • Respect: +164
    • Google+
    • blackgins
    • blackginsoft
    • Mostra profilo
  • Dispositivo Android:
    Galaxy Nexus
  • Sistema operativo:
    Mac OSX 10.8
Re:listview come gestire onclickitem ?
« Risposta #7 il: 13 Maggio 2011, 20:48:46 CEST »
0
Se é una ListActivity basta fare getList() per ottenere la lista.
Postate il LogCat LogCat LogCat LogCat LogCat

Offline ALEX88-ANDR0!D

  • Utente normale
  • ***
  • Post: 173
  • The Special One
  • Respect: +13
    • Google+
    • droidev88
    • Mostra profilo
  • Dispositivo Android:
    HTC DESIRE HD
  • Sistema operativo:
    WINDOWS 7
Re:listview come gestire onclickitem ?
« Risposta #8 il: 13 Maggio 2011, 21:05:42 CEST »
0
Codice (Java): [Seleziona]
lv=(ListView)findViewById(R.id.list);
lv.setAdapter(new MioAdapter(this));

ricordati che se hai mantenuto nel file di layout l'id della ListView android:id="@id/android:list" devi mettere android.R.id.list nel findViewById

grazie ancora . si ho ancora l'id impostato @id/android:list , ho aggiunto le due righe così  nel mainactivity.java
Codice (Java): [Seleziona]
package it.itiscastelli.es5a;



import it.itiscastelli.es5a.R;

import android.app.Activity;
import android.app.ListActivity;
import android.content.Intent;
import android.os.Bundle;
import android.view.ContextMenu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.view.ContextMenu.ContextMenuInfo;
import android.widget.AdapterView;

import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;
import android.widget.AdapterView.AdapterContextMenuInfo;
import android.widget.AdapterView.OnItemClickListener;


public class MainActivity extends Activity {
       
    @Override
    public void onCreate(Bundle savedInstanceState) {
       
        super.onCreate(savedInstanceState);
       
        setListAdapter(new MioAdapter(this));
       
        ListView lv = getListView();
        lv=(ListView)findViewById(android.R.id.list);
        lv.setAdapter(new MioAdapter(this));
        lv.setOnItemClickListener(new OnItemClickListener() {
               
                @Override
            public void onItemClick(AdapterView<?> parent, View v, int position, long id) {
                       
                        if (position==0){      
                                launchSeason();
                        }
                         else if(position==1){
                     launchStat();
             }
                }
               

        });
       
        registerForContextMenu(lv);
    }
   
   

        @Override
    public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) {
       
                super.onCreateContextMenu(menu, v, menuInfo);
               
                MenuInflater inflater = getMenuInflater();
                inflater.inflate(R.menu.context_menu, menu);
    }
   
    @Override
    public boolean onContextItemSelected(MenuItem item) {
       
                AdapterContextMenuInfo info = (AdapterContextMenuInfo) item.getMenuInfo();
               
                TextView txtTitolo = (TextView) info.targetView.findViewById(R.id.titolo);
               
                switch (item.getItemId()) {
               
                        case R.id.chiama:
                                toast("Chiama " + info.position + ": " + txtTitolo.getText());
                        break;
                       
                        case R.id.elimina:
                                toast("Elimina " + info.position + ": " + txtTitolo.getText());
                        break;
                }
               
                return super.onContextItemSelected(item);
    }
   
   
    private void toast(String text) {
       
        Toast.makeText(getApplicationContext(), text , Toast.LENGTH_SHORT).show();
    }
   
    public void launchSeason(){
        Intent i = new Intent(MainActivity.this,PaginaDue.class);
        startActivity(i);
         }
    public void launchStat(){
        Intent o = new Intent(MainActivity.this,PaginaDue.class);
        startActivity(o);
         }
   
}
, però mi rimangono gli errori  ???
È stata trovata una soluzione al tuo problema?
Evidenzia il post più utile premendo . È un ottimo modo per ringraziare chi ti ha aiutato ;).
E se hai aperto tu il thread marcalo come risolto cliccando !

Offline Ricky`

  • Amministratore
  • Utente storico
  • *****
  • Post: 3489
  • Respect: +506
    • Github
    • Google+
    • rciovati
    • Mostra profilo
Re:listview come gestire onclickitem ?
« Risposta #9 il: 13 Maggio 2011, 21:19:55 CEST »
0
Dovresti oramai sapere che devi postare il logcat altrimenti noi non possiamo capire qual'è il problema...

Offline ALEX88-ANDR0!D

  • Utente normale
  • ***
  • Post: 173
  • The Special One
  • Respect: +13
    • Google+
    • droidev88
    • Mostra profilo
  • Dispositivo Android:
    HTC DESIRE HD
  • Sistema operativo:
    WINDOWS 7
Re:listview come gestire onclickitem ?
« Risposta #10 il: 13 Maggio 2011, 21:25:14 CEST »
0
scusa , mi sono spiegato male , dopo l'aggiunta delle due righe , continua a dirmi errore nel senso nel campo problem mi evidenzia ancora
Citazione
Description   Resource   Path   Location   Type
The method getListView() is undefined for the type MainActivity
Description   Resource   Path   Location   Type
The method setListAdapter(MioAdapter) is undefined for the type MainActivity
È stata trovata una soluzione al tuo problema?
Evidenzia il post più utile premendo . È un ottimo modo per ringraziare chi ti ha aiutato ;).
E se hai aperto tu il thread marcalo come risolto cliccando !

Offline Ricky`

  • Amministratore
  • Utente storico
  • *****
  • Post: 3489
  • Respect: +506
    • Github
    • Google+
    • rciovati
    • Mostra profilo
Re:listview come gestire onclickitem ?
« Risposta #11 il: 13 Maggio 2011, 21:34:56 CEST »
0
Pensavo che era sottointeso che dovevi tirare via

Codice: [Seleziona]
        setListAdapter(new MioAdapter(this));
       
        ListView lv = getListView();

Comunque, anche qui nel forum, ci sono molti tutorial su come si usano le ListView, nel caso hai ancora problemi ti consiglio di fare riferimento a uno di questi.

Offline ALEX88-ANDR0!D

  • Utente normale
  • ***
  • Post: 173
  • The Special One
  • Respect: +13
    • Google+
    • droidev88
    • Mostra profilo
  • Dispositivo Android:
    HTC DESIRE HD
  • Sistema operativo:
    WINDOWS 7
Re:listview come gestire onclickitem ?
« Risposta #12 il: 13 Maggio 2011, 21:44:39 CEST »
0
se elimino i due  rendendo mainactivity.java così
Codice (Java): [Seleziona]
package it.itiscastelli.es5a;



import it.itiscastelli.es5a.R;

import android.app.ListActivity;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.ContextMenu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.view.ContextMenu.ContextMenuInfo;
import android.widget.AdapterView;

import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;
import android.widget.AdapterView.AdapterContextMenuInfo;
import android.widget.AdapterView.OnItemClickListener;


public class MainActivity extends Activity {
       
    @Override
    public void onCreate(Bundle savedInstanceState) {
       
        super.onCreate(savedInstanceState);
       
        //setListAdapter(new MioAdapter(this));
       
        // ListView lv = getListView();
        lv=(ListView)findViewById(R.id.list);
       
        lv.setAdapter(new MioAdapter(this));
        lv.setOnItemClickListener(new OnItemClickListener() {
               
                @Override
            public void onItemClick(AdapterView<?> parent, View v, int position, long id) {
                       
                        if (position==0){      
                                launchSeason();
                        }
                         else if(position==1){
                     launchStat();
             }
                }
               

        });
       
        registerForContextMenu(lv);
    }
   
   

        @Override
    public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) {
       
                super.onCreateContextMenu(menu, v, menuInfo);
               
                MenuInflater inflater = getMenuInflater();
                inflater.inflate(R.menu.context_menu, menu);
    }
   
    @Override
    public boolean onContextItemSelected(MenuItem item) {
       
                AdapterContextMenuInfo info = (AdapterContextMenuInfo) item.getMenuInfo();
               
                TextView txtTitolo = (TextView) info.targetView.findViewById(R.id.titolo);
               
                switch (item.getItemId()) {
               
                        case R.id.chiama:
                                toast("Chiama " + info.position + ": " + txtTitolo.getText());
                        break;
                       
                        case R.id.elimina:
                                toast("Elimina " + info.position + ": " + txtTitolo.getText());
                        break;
                }
               
                return super.onContextItemSelected(item);
    }
   
   
    private void toast(String text) {
       
        Toast.makeText(getApplicationContext(), text , Toast.LENGTH_SHORT).show();
    }
   
    public void launchSeason(){
        Intent i = new Intent(MainActivity.this,PaginaDue.class);
        startActivity(i);
         }
    public void launchStat(){
        Intent o = new Intent(MainActivity.this,PaginaDue.class);
        startActivity(o);
         }
   
}
però mi compaiono 4 errori  (nel campo problem) , in pratica

lv cannot be resolved e lv cannot be resolved to a variable  ,


Citazione
Comunque, anche qui nel forum, ci sono molti tutorial su come si usano le ListView, nel caso hai ancora problemi ti consiglio di fare riferimento a uno di questi.
ok , grazie mille ancora per tutto l'aiuto ...
È stata trovata una soluzione al tuo problema?
Evidenzia il post più utile premendo . È un ottimo modo per ringraziare chi ti ha aiutato ;).
E se hai aperto tu il thread marcalo come risolto cliccando !

Offline ALEX88-ANDR0!D

  • Utente normale
  • ***
  • Post: 173
  • The Special One
  • Respect: +13
    • Google+
    • droidev88
    • Mostra profilo
  • Dispositivo Android:
    HTC DESIRE HD
  • Sistema operativo:
    WINDOWS 7
Re:listview come gestire onclickitem ?
« Risposta #13 il: 13 Maggio 2011, 22:56:10 CEST »
0
ho guardato alcuni topic , in particolare http://www.anddev.it/index.php/topic,432.0.html  quindi ho modificato un po il cod precedente aggiungendo poco dopo
Citazione
Codice (Java): [Seleziona]
public class MainActivity extends Activity {
la righa
Codice (Java): [Seleziona]
public ListView lv; così facendo gli errori di prima
Citazione
(lv cannot be resolved e lv cannot be resolved to a variable  )
spariscono
Codice (Java): [Seleziona]
package it.itiscastelli.es5a;



import it.itiscastelli.es5a.R;

import android.app.ListActivity;

import android.content.Intent;
import android.os.Bundle;
import android.view.ContextMenu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.view.ContextMenu.ContextMenuInfo;
import android.widget.AdapterView;

import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;
import android.widget.AdapterView.AdapterContextMenuInfo;
import android.widget.AdapterView.OnItemClickListener;


public class MainActivity extends ListActivity {
public ListView lv;
    @Override
    public void onCreate(Bundle savedInstanceState) {
       
        super.onCreate(savedInstanceState);
       
        //setListAdapter(new MioAdapter(this));
         
        lv =(ListView)findViewById(android.R.id.list);
       
        lv.setAdapter(new MioAdapter(this));
        lv.setOnItemClickListener(new OnItemClickListener() {
               
                @Override
            public void onItemClick(AdapterView<?> parent, View v, int position, long id) {
                       
                        if (position==0){      
                                launchSeason();
                        }
                         else if(position==1){
                     launchStat();
             }
                }
               

        });
       
        registerForContextMenu(lv);
    }
   
   

        @Override
    public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) {
       
                super.onCreateContextMenu(menu, v, menuInfo);
               
                MenuInflater inflater = getMenuInflater();
                inflater.inflate(R.menu.context_menu, menu);
    }
   
    @Override
    public boolean onContextItemSelected(MenuItem item) {
       
                AdapterContextMenuInfo info = (AdapterContextMenuInfo) item.getMenuInfo();
               
                TextView txtTitolo = (TextView) info.targetView.findViewById(R.id.titolo);
               
                switch (item.getItemId()) {
               
                        case R.id.chiama:
                                toast("Chiama " + info.position + ": " + txtTitolo.getText());
                        break;
                       
                        case R.id.elimina:
                                toast("Elimina " + info.position + ": " + txtTitolo.getText());
                        break;
                }
               
                return super.onContextItemSelected(item);
    }
   
   
    private void toast(String text) {
       
        Toast.makeText(getApplicationContext(), text , Toast.LENGTH_SHORT).show();
    }
   
    public void launchSeason(){
        Intent i = new Intent(MainActivity.this,PaginaDue.class);
        startActivity(i);
         }
    public void launchStat(){
        Intent o = new Intent(MainActivity.this,PaginaDue.class);
        startActivity(o);
         }
   
}
però alla prova del 9 appena parte l'app si blocca rimandando alla
il logcat è il seguente :
Citazione
05-13 20:55:37.832: INFO/ActivityManager(59): Starting activity: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10200000 cmp=it.itiscastelli.es5a/.MainActivity }
05-13 20:55:38.192: INFO/ActivityManager(59): Start proc it.itiscastelli.es5a for activity it.itiscastelli.es5a/.MainActivity: pid=812 uid=10091 gids={}
05-13 20:55:39.372: DEBUG/AndroidRuntime(812): Shutting down VM
05-13 20:55:39.372: WARN/dalvikvm(812): threadid=1: thread exiting with uncaught exception (group=0x4001d800)
05-13 20:55:39.403: ERROR/AndroidRuntime(812): FATAL EXCEPTION: main
05-13 20:55:39.403: ERROR/AndroidRuntime(812): java.lang.RuntimeException: Unable to start activity ComponentInfo{it.itiscastelli.es5a/it.itiscastelli.es5a.MainActivity}: java.lang.NullPointerException
05-13 20:55:39.403: ERROR/AndroidRuntime(812):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2663)
05-13 20:55:39.403: ERROR/AndroidRuntime(812):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679)
05-13 20:55:39.403: ERROR/AndroidRuntime(812):     at android.app.ActivityThread.access$2300(ActivityThread.java:125)
05-13 20:55:39.403: ERROR/AndroidRuntime(812):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033)
05-13 20:55:39.403: ERROR/AndroidRuntime(812):     at android.os.Handler.dispatchMessage(Handler.java:99)
05-13 20:55:39.403: ERROR/AndroidRuntime(812):     at android.os.Looper.loop(Looper.java:123)
05-13 20:55:39.403: ERROR/AndroidRuntime(812):     at android.app.ActivityThread.main(ActivityThread.java:4627)
05-13 20:55:39.403: ERROR/AndroidRuntime(812):     at java.lang.reflect.Method.invokeNative(Native Method)
05-13 20:55:39.403: ERROR/AndroidRuntime(812):     at java.lang.reflect.Method.invoke(Method.java:521)
05-13 20:55:39.403: ERROR/AndroidRuntime(812):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
05-13 20:55:39.403: ERROR/AndroidRuntime(812):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
05-13 20:55:39.403: ERROR/AndroidRuntime(812):     at dalvik.system.NativeStart.main(Native Method)
05-13 20:55:39.403: ERROR/AndroidRuntime(812): Caused by: java.lang.NullPointerException
05-13 20:55:39.403: ERROR/AndroidRuntime(812):     at it.itiscastelli.es5a.MainActivity.onCreate(MainActivity.java:36)
05-13 20:55:39.403: ERROR/AndroidRuntime(812):     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
05-13 20:55:39.403: ERROR/AndroidRuntime(812):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627)
05-13 20:55:39.403: ERROR/AndroidRuntime(812):     ... 11 more
05-13 20:55:39.422: WARN/ActivityManager(59):   Force finishing activity it.itiscastelli.es5a/.MainActivity
05-13 20:55:39.932: WARN/ActivityManager(59): Activity pause timeout for HistoryRecord{45125dc0 it.itiscastelli.es5a/.MainActivity}
05-13 20:55:41.993: WARN/InputManagerService(59): Window already focused, ignoring focus gain of: com.android.internal.view.IInputMethodClient$Stub$Proxy@44f3a990
05-13 20:55:42.163: INFO/Process(812): Sending signal. PID: 812 SIG: 9
05-13 20:55:42.453: INFO/ActivityManager(59): Process it.itiscastelli.es5a (pid 812) has died.
« Ultima modifica: 13 Maggio 2011, 22:58:50 CEST da ALEX88-ANDR0!D »
È stata trovata una soluzione al tuo problema?
Evidenzia il post più utile premendo . È un ottimo modo per ringraziare chi ti ha aiutato ;).
E se hai aperto tu il thread marcalo come risolto cliccando !

Offline ALEX88-ANDR0!D

  • Utente normale
  • ***
  • Post: 173
  • The Special One
  • Respect: +13
    • Google+
    • droidev88
    • Mostra profilo
  • Dispositivo Android:
    HTC DESIRE HD
  • Sistema operativo:
    WINDOWS 7
Re:listview come gestire onclickitem ?
« Risposta #14 il: 14 Maggio 2011, 15:54:26 CEST »
0
ciao a tutti , oggi ho provato a vedere ulteriori esempi , e vedo che è ugiusto usare subito dopo activity ,
Citazione
ListView nome dato listview  ;
cioè nel mio caso "lv"  ma continuo ad avere  un errore di  nullpointexception

qui è l'ultima versione che ho provato di mainactivity.java
Codice (Java): [Seleziona]
package it.itiscastelli.es5a;



import it.itiscastelli.es5a.R;
import android.app.ListActivity;


import android.content.Intent;
import android.os.Bundle;
import android.view.ContextMenu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.view.ContextMenu.ContextMenuInfo;
import android.widget.AdapterView;

import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;
import android.widget.AdapterView.AdapterContextMenuInfo;
import android.widget.AdapterView.OnItemClickListener;


public class MainActivity extends ListActivity {
        ListView lv  ;
    @Override
    public void onCreate(Bundle savedInstanceState) {
       
        super.onCreate(savedInstanceState);
       
        //setListAdapter(new MioAdapter(this));
       
       
        lv =(ListView)findViewById(R.id.list);
        lv.setAdapter(new MioAdapter(this));
       
        lv.setOnItemClickListener(new OnItemClickListener() {
               
                @Override
            public void onItemClick(AdapterView<?> parent, View v, int position, long id) {
                       
                        if (position==0){      
                                launchSeason();
                        }
                         else if(position==1){
                     launchStat();
             }
                }
               

        });
       
        registerForContextMenu(lv);
    }
   
   

        @Override
    public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) {
       
                super.onCreateContextMenu(menu, v, menuInfo);
               
                MenuInflater inflater = getMenuInflater();
                inflater.inflate(R.menu.context_menu, menu);
    }
   
    @Override
    public boolean onContextItemSelected(MenuItem item) {
       
                AdapterContextMenuInfo info = (AdapterContextMenuInfo) item.getMenuInfo();
               
                TextView txtTitolo = (TextView) info.targetView.findViewById(R.id.titolo);
               
                switch (item.getItemId()) {
               
                        case R.id.chiama:
                                toast("Chiama " + info.position + ": " + txtTitolo.getText());
                        break;
                       
                        case R.id.elimina:
                                toast("Elimina " + info.position + ": " + txtTitolo.getText());
                        break;
                }
               
                return super.onContextItemSelected(item);
    }
   
   
    private void toast(String text) {
       
        Toast.makeText(getApplicationContext(), text , Toast.LENGTH_SHORT).show();
    }
   
    public void launchSeason(){
        Intent i = new Intent(MainActivity.this,PaginaDue.class);
        startActivity(i);
         }
    public void launchStat(){
        Intent o = new Intent(MainActivity.this,PaginaDue.class);
        startActivity(o);
         }
   
}

qui invece il logcat
Citazione
05-14 13:52:29.263: INFO/ActivityManager(59): Starting activity: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10200000 cmp=it.itiscastelli.es5a/.MainActivity }
05-14 13:52:29.553: INFO/ActivityManager(59): Start proc it.itiscastelli.es5a for activity it.itiscastelli.es5a/.MainActivity: pid=349 uid=10091 gids={}
05-14 13:52:30.543: DEBUG/AndroidRuntime(349): Shutting down VM
05-14 13:52:30.543: WARN/dalvikvm(349): threadid=1: thread exiting with uncaught exception (group=0x4001d800)
05-14 13:52:30.563: ERROR/AndroidRuntime(349): FATAL EXCEPTION: main
05-14 13:52:30.563: ERROR/AndroidRuntime(349): java.lang.RuntimeException: Unable to start activity ComponentInfo{it.itiscastelli.es5a/it.itiscastelli.es5a.MainActivity}: java.lang.NullPointerException
05-14 13:52:30.563: ERROR/AndroidRuntime(349):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2663)
05-14 13:52:30.563: ERROR/AndroidRuntime(349):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679)
05-14 13:52:30.563: ERROR/AndroidRuntime(349):     at android.app.ActivityThread.access$2300(ActivityThread.java:125)
05-14 13:52:30.563: ERROR/AndroidRuntime(349):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033)
05-14 13:52:30.563: ERROR/AndroidRuntime(349):     at android.os.Handler.dispatchMessage(Handler.java:99)
05-14 13:52:30.563: ERROR/AndroidRuntime(349):     at android.os.Looper.loop(Looper.java:123)
05-14 13:52:30.563: ERROR/AndroidRuntime(349):     at android.app.ActivityThread.main(ActivityThread.java:4627)
05-14 13:52:30.563: ERROR/AndroidRuntime(349):     at java.lang.reflect.Method.invokeNative(Native Method)
05-14 13:52:30.563: ERROR/AndroidRuntime(349):     at java.lang.reflect.Method.invoke(Method.java:521)
05-14 13:52:30.563: ERROR/AndroidRuntime(349):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
05-14 13:52:30.563: ERROR/AndroidRuntime(349):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
05-14 13:52:30.563: ERROR/AndroidRuntime(349):     at dalvik.system.NativeStart.main(Native Method)
05-14 13:52:30.563: ERROR/AndroidRuntime(349): Caused by: java.lang.NullPointerException
05-14 13:52:30.563: ERROR/AndroidRuntime(349):     at it.itiscastelli.es5a.MainActivity.onCreate(MainActivity.java:36)
05-14 13:52:30.563: ERROR/AndroidRuntime(349):     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
05-14 13:52:30.563: ERROR/AndroidRuntime(349):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627)
05-14 13:52:30.563: ERROR/AndroidRuntime(349):     ... 11 more
05-14 13:52:30.573: WARN/ActivityManager(59):   Force finishing activity it.itiscastelli.es5a/.MainActivity
05-14 13:52:31.083: WARN/ActivityManager(59): Activity pause timeout for HistoryRecord{451abf18 it.itiscastelli.es5a/.MainActivity}
05-14 13:52:32.452: INFO/Process(349): Sending signal. PID: 349 SIG: 9
05-14 13:52:32.472: INFO/ActivityManager(59): Process it.itiscastelli.es5a (pid 349) has died.
05-14 13:52:32.632: WARN/InputManagerService(59): Window already focused, ignoring focus gain of: com.android.internal.view.IInputMethodClient$Stub$Proxy@4517b798

rileggendomi questo 3d ho visto una risposta di blackgin
Citazione
Se é una ListActivity basta fare getList() per ottenere la lista.
come sarebbe ? , nel codice seguente cosa dovrei fare ? grazie mille ...  :-)
È stata trovata una soluzione al tuo problema?
Evidenzia il post più utile premendo . È un ottimo modo per ringraziare chi ti ha aiutato ;).
E se hai aperto tu il thread marcalo come risolto cliccando !