2012-07-27 15 views
6

estoy jugando con el código "lista seleccionable Artículos" de Pro Android 4. El código es básicamente:botón Atrás no funciona después de mostrar Contacto

public class MainActivity extends ListActivity implements OnItemClickListener 
{ 
    @Override 
    public void onCreate(Bundle savedInstanceState) 
    { 
     super.onCreate(savedInstanceState); 

     CursorLoader loader = new CursorLoader(this, Contacts.CONTENT_URI, null, 
      null, null, Contacts.DISPLAY_NAME + " ASC"); 
     Cursor cursor = loader.loadInBackground(); 

     String[] columns = new String[] { Contacts.DISPLAY_NAME }; 
     int[] views = new int[] { android.R.id.text1 }; 

     SimpleCursorAdapter adapter = new SimpleCursorAdapter(this, 
      android.R.layout.simple_list_item_1, cursor, columns, views, 
       CursorAdapter.FLAG_REGISTER_CONTENT_OBSERVER); 
     setListAdapter(adapter); 

     getListView().setOnItemClickListener(this); 
    } 

    @Override 
    public void onItemClick(AdapterView<?> adapterView, View view, int position, long id) 
    { 
     Uri contactUri = ContentUris.withAppendedId(Contacts.CONTENT_URI, id); 
     Intent intent = new Intent(Intent.ACTION_VIEW, contactUri); 
     startActivity(intent); 
    } 
} 

Todo esto funciona bien. Veo la lista de contactos y cuando toco un nombre, abre la libreta de direcciones para esa persona.

El problema es que el botón Atrás no funciona desde la libreta de direcciones. De acuerdo con el libro, al tocar el botón Atrás de la libreta de direcciones debería volver a la Actividad anterior. Pero, en cambio, vuelvo a la pantalla de inicio.

Mi aplicación todavía está en marcha, cuando cambio de forma manual le regreso y la vista de lista está en la posición correcta de desplazamiento previo, etc.

Esto es en Android 4.1.1. Me pregunto si hay algo más que debería implementar para que esto funcione.

Este es el archivo de manifiesto:

<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="com.example.contactslist" 
    android:versionCode="1" 
    android:versionName="1.0" > 

    <uses-sdk 
     android:minSdkVersion="16" 
     android:targetSdkVersion="15" /> 

    <uses-permission android:name="android.permission.READ_CONTACTS"/> 

    <application 
     android:icon="@drawable/ic_launcher" 
     android:label="@string/app_name" 
     android:theme="@style/AppTheme" > 
     <activity 
      android:name=".MainActivity" 
      android:label="@string/title_activity_main" > 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 

       <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 
     </activity> 
    </application> 

</manifest> 
+0

¿Puedo ver el archivo de manifiesto? – Erol

+0

Creé una aplicación rápida usando su estilo exacto de copiar/pegar código, y funciona muy bien para mí. La única vez que no funciona es cuando presiono el botón en la parte superior izquierda para usar la aplicación "Personas" Ver todo ... luego, cuando presiono hacia atrás, termino en la pantalla de inicio. Pero simplemente presionar hacia atrás funciona bien. – RyanInBinary

+0

Estoy experimentando el mismo problema. ¿Has resuelto la solución? – bivy

Respuesta

0

suena como su pila de actividad se está en mal estado de alguna manera. Trate de añadir lo siguiente antes de empezar su llamada a startActivity (intención)

intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
+0

¿Alguien no está de acuerdo con que parezca que la pila de actividades parece ser problemática? –

Cuestiones relacionadas