2013-03-20 25 views
6

Dies ist der manifest Code um das Thema:im Manifest

<activity 
     android:name="smartHomes.capstone.GeneralAndSecurity" 
     android:label="@string/title_activity_general_and_security" 
     android:parentActivityName="smartHomes.capstone.HomePage" > 
     <meta-data 
      android:name="android.support.PARENT_ACTIVITY" 
      android:value="smartHomes.capstone.HomePage" /> 
    </activity> 

Dies ist das Fehlerprotokoll:

03-20 21:19:18.227: E/AndroidRuntime(787): FATAL EXCEPTION: main 
    03-20 21:19:18.227: E/AndroidRuntime(787): java.lang.IllegalArgumentException: Activity   GeneralAndSecurity does not have a parent activity name specified. (Did you forget to add the android.support.PARENT_ACTIVITY <meta-data> element in your manifest?) 
    03-20 21:19:18.227: E/AndroidRuntime(787): at android.support.v4.app.NavUtils.navigateUpFromSameTask(NavUtils.java:177) 
    03-20 21:19:18.227: E/AndroidRuntime(787): at smartHomes.capstone.GeneralAndSecurity.onOptionsItemSelected(GeneralAndSecurity.java:41) 
    03-20 21:19:18.227: E/AndroidRuntime(787): at com.actionbarsherlock.app.SherlockActivity.onMenuItemSelected(SherlockActivity.java:208) 

Bitte kann ich wissen, warum Ist der Return-Up-Button ein Fehler?

+0

können Sie Ihren Code schreiben um Zeile 41 deiner 'GeneralAndSecurity' Klasse? Das Protokoll sagt, es stürzt dort ab. Überprüfen Sie auch [die Post] (http://stackoverflow.com/questions/12276027/how-can-i-return-to-parent-activity-correctly) Frage/Antworten und sehen, ob sie helfen. – Mxyk

Antwort

2

Das gleiche gilt für mich gearbeitet, ohne meta-data

Hier ist mein Beispiel.

<activity android:name="com.redplanet.sandboxandroid.ui.MainActivity" > 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 

      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity> 
    <activity 
     android:name="com.redplanet.sandboxandroid.ui.SecondActivity" 
     android:parentActivityName="com.redplanet.sandboxandroid.ui.MainActivity" > 
    </activity> 

Meine SecondActivity Klasse.

public class SecondActivity extends SherlockFragmentActivity { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.countries_list); 

     ActionBar actionBar = getSupportActionBar(); 
     actionBar.setDisplayOptions(ActionBar.DISPLAY_HOME_AS_UP | ActionBar.DISPLAY_SHOW_TITLE); 

    } 

    @Override 
    public boolean onOptionsItemSelected(MenuItem item) { 
     switch (item.getItemId()) { 
     case android.R.id.home: 
      NavUtils.navigateUpFromSameTask(this); 
      break; 
     } 
     return super.onOptionsItemSelected(item); 

    } 

} 
+3

Dies kann für Sie als Android funktionieren: parentActivityName wurde in API 16 eingeführt. Um die API-Ebenen 4 - 16 zu unterstützen, müssen Sie eine übergeordnete Aktivität mit einer und "android.support.PARENT_ACTIVITY" wie oben deklariert werden. – speedynomads

2

Ich hatte das gleiche Problem, aber es war einfach ein Tippfehler im Paketnamen. Haben Sie den Paket- und Klassennamen überprüft?

0

Versuchen in Ihrem Manifest diese auf Ihrer Mutter Aktivität hinzuzufügen:

android:allowBackup="true"

Beispiel:

<activity 
    android:name=".View.MainActivity" 
    android:allowBackup="true"> 
</activity> 

<activity 
    android:name=".View.ChildActivity" 
    android:parentActivityName=".View.ChildActivity"> 
    <meta-data 
     android:name="android.support.PARENT_ACTIVITY" 
     android:value=".View.MainActivity" /> 
</activity> 

Und in Ihrem ChildActivity:

public class ChildActivity extends AppCompatActivity { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_child); 
     getSupportActionBar().setDisplayHomeAsUpEnabled(true); 
    } 

    @Override 
    public boolean onOptionsItemSelected(MenuItem item) { 
     switch (item.getItemId()) { 
      case android.R.id.home: 
       NavUtils.navigateUpFromSameTask(this); 
       return true; 
     } 
     return super.onOptionsItemSelected(item); 
    } 
} 
Verwandte Themen