2016-03-19 6 views
0

Ich versuche gerade, eine globale Variable Aktivität zu machen.MyApplication nicht zuweisbar Aktivität

Ich habe die folgenden Anweisungen (Android global variable) ausgeführt, um die Aktivität einzurichten. Das Problem tritt auf, wenn ich versuche, das android: name Attribut zu bearbeiten. Wenn ich den Namen der Anwendung/Aktivität eintrage, sagt die Fehlermeldung, dass ich die Anwendung nicht erweitern kann. Kann jemand erklären warum?

Manifest:

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="com.example.denny.protoype2"> 

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

<application 
    android:name="Protoype2" 
    android:allowBackup="true" 
    android:label="@string/app_name" 
    android:supportsRtl="true" 
    android:theme="@style/AppTheme"> 
    <activity 
     android:name=".Protoype2" 
     android:label="@string/title_activity_global_var" 
     android:theme="@style/AppTheme.NoActionBar"> 
    </activity> 
</application> 

Und Protoype2 Aktivität:

package com.example.denny.protoype2; 

import android.app.Application; 


public class Protoype2 extends Application { 
    private boolean StopTrue; 

    public boolean getStopTrue() { 
     return StopTrue; 
    } 

    public void setStopTrue (boolean StopTrue) { 
     this.StopTrue = StopTrue; 
    } 

} 

Antwort

1

Anwendung und Aktivität sind zwei separate Klassen. Wenn Sie die Anwendungsklasse sind Verlängerung dann nicht die gleiche Klasse als Aktivität erklärt auch im Manifest -

diesen Code aus manifest entfernen -

<activity 
    android:name=".Protoype2" 
    android:label="@string/title_activity_global_var" 
    android:theme="@style/AppTheme.NoActionBar"> 
</activity> 
1

die xml ist blind, und mehr wie ein Informationshalter/Skelett für die App entweder Layouts oder manifestieren, sie kann keine Logik, Intante Objekte oder Getter/Setter verwenden.

1

Die „Protoype2“ ist die Anwendungsklasse. Und Sie können die Application-Klasse nicht als Aktivität deklarieren. Sie benötigen eine Aktivitätsklasse.

Der Link, den Sie gepostet haben, ist ziemlich str8, wie Sie von einer Aktivität auf die Application-Klasse zugreifen können.

1
<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
package="com.example.denny.protoype2"> 

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

<application 
android:name="Protoype2" 
android:allowBackup="true" 
android:label="@string/app_name" 
android:supportsRtl="true" 
android:theme="@style/AppTheme"> 
<activity 
    android:name=".Protoype2" 
    android:label="@string/title_activity_global_var" 
    android:theme="@style/AppTheme.NoActionBar"> 
</activity> 
</application> 

Ersetzen durch

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
package="com.example.denny.protoype2"> 

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

<application 
android:name=".Protoype2" 
android:allowBackup="true" 
android:label="@string/app_name" 
android:supportsRtl="true" 
android:theme="@style/AppTheme"> 

</application> 
Verwandte Themen