2012-07-27 29 views
6

gram z „Klikalne elementów listy” kodu z Pro Android 4. Kod jest zasadniczo:przycisk Wstecz nie działa po wyświetleniu nas

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); 
    } 
} 

To wszystko działa w porządku. Widzę listę kontaktów i po dotknięciu nazwy otwiera książkę adresową dla tej osoby.

Problem polega na tym, że przycisk Wstecz nie działa z książki adresowej. Zgodnie z książką, naciśnięcie przycisku wstecz z książki adresowej powinno przywrócić mi powyższą aktywność. Ale zamiast tego wracam do ekranu głównego.

Moja aplikacja nadal działa, kiedy na niego przełączyć ręcznie wrócę do niego, a widok lista znajduje się na właściwej poprzedniej pozycji przewijania itp

To jest na Androidzie 4.1.1. Zastanawiam się, czy jest coś ekstra, co powinienem wprowadzić, aby to zadziałało?

Jest to plik manifestu:

<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

Czy mogę zobaczyć plik manifestu? – Erol

+0

Stworzyłem szybką aplikację przy użyciu dokładnego stylu kopiowania/wklejania kodu i działa to dobrze dla mnie. Nie działa to tylko wtedy, gdy naciśniesz przycisk w lewym górnym rogu, aby użyć aplikacji "Ludzie" Zobacz wszystko ... a kiedy naciśniemy ponownie, skończę na ekranie głównym. Ale samo naciśnięcie z powrotem działa dobrze. – RyanInBinary

+0

Mam ten sam problem. Czy rozwiązałeś to rozwiązanie? – bivy

Odpowiedz

0

Brzmi jak Twój stos aktywny jest coraz pomieszane jakoś. Spróbuj dodać następujące elementy, zanim rozpoczniesz wywołanie funkcji startActivity (zamiar)

intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
+0

Czy ktoś nie zgadza się, że wygląda na to, że stos działań wydaje się być problematyczny? –

Powiązane problemy