创建全局类。错误:android.app.application无法转换为com

时间:2014-10-01 21:16:33

标签: java android eclipse class

我正在尝试创建一个全局类。我希望我的所有活动都有一个全局变量。

我的课程:

package com.example.app;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;

import android.app.Application;

public class Records extends Application{

private int N_livelli=30;
private int[] record = new int[N_livelli];
private String path = getApplicationContext().getFilesDir().getPath() + "/Records.txt";

public void LetturaFile()
{
    File f = new File(path);
    if(f.exists())
    {
        try
        {
            FileReader fileLeggi = new FileReader(path);
            BufferedReader lettore = new BufferedReader(fileLeggi);
            String rigaLetta;
            int n=0;
            while((rigaLetta=lettore.readLine())!=null)
            {
                record[n]=Integer.valueOf(rigaLetta);
                n++;
            }
            lettore.close();
            fileLeggi.close();
        }
        catch (IOException e)
        {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
    else
    {
        try 
        {
            for(int i=0;i<N_livelli;i++) record[i]=0;
            f.createNewFile();
            FileWriter fileScrivi = new FileWriter(path);
            fileScrivi.write("");
            for(int i=0;i<N_livelli;i++) fileScrivi.append(record[i]+"\n");
            fileScrivi.close();
        }
        catch (IOException e)
        {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
}

public int getRecord(int livello)
{
    return record[livello-1];
}
}

关于MainActivity OnCreate的代码:

[...]
Records records = (Records) getApplicationContext();
records.LetturaFile();
[..]

我的AndroidManifest.xml

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

<uses-sdk
    android:minSdkVersion="9"
    android:targetSdkVersion="21" />

<application
    android:allowBackup="true"
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/AppTheme" >

    <activity
        android:name=".MainActivity"
        [...]
    </activity>
    <activity
        android:name=".SecondActivity"
        [...]
    </activity>
 </application>
 <application 
    android:name=".Records">
 </application>
</manifest>

Eclipse错误:android.app.application无法强制转换为com.example.app.Records

请帮帮我。谢谢。

1 个答案:

答案 0 :(得分:0)

您必须在应用程序标记中指定类的完整路径,而不是添加其他应用程序标记,而不是其他内容。

<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" 
android:name="com.example.app.Records" >
...