【发布时间】:2011-06-25 20:42:30
【问题描述】:
我知道这个问题已经被问过一百万次了,因为我已经做了一些研究并且发现了很多关于这个问题的线索。我曾尝试在这些线程中使用答案,但遇到了一些麻烦。
我希望设置一些我可以在所有活动中使用的变量。
我创建了一个 GlobalVariables.java 类,如下所示(其中的值目前仅用于测试目的):
import android.app.Application;
public class GlobalVariables extends Application {
int holeAmount;
public int getHoles(){
return holeAmount;
}
public void setHoles(String s){
holeAmount = 30;
}
}
在我所有事情都发生的主要活动中,我有以下内容:
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
GlobalVariables global = ((GlobalVariables)getApplicationContext());
int totalHoles = global.getHoles();
在“GlobalVariables global = ...”行我收到以下错误:
Multiple markers at this line
- GlobalVariables cannot be resolved
to a type
- GlobalVariables cannot be resolved
to a type
我尝试按照此处的说明进行操作,但显然我做错了什么。 > How to declare global variables in Android?
任何帮助将不胜感激!
谢谢!
第二次尝试:
EasyPar.java(错误@EasyParHelperActivity)
package com.movi.easypar;
import java.text.DateFormat;
import java.util.Date;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.content.Intent;
import android.database.Cursor;
import android.graphics.PixelFormat;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.Window;
import android.widget.Button;
import android.widget.ScrollView;
import android.widget.TextView;
import android.widget.Toast;
public class EasyPar extends Activity implements OnClickListener {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
(initialize all my buttons and textviews)
}
public void someMethod() {
EasyParHelperActivity.helper.setHoles(30);
int holes = EasyParHelperActivity.helper.getHoles();
}
(the rest of my button functions, etc.)
EasyParHelperActivity(无错误)
package com.movi.easypar;
import android.app.Application;
public class EasyParHelperActivity extends Application {
public static EasyParHelper helper = new EasyParHelper();
}
EasyParHelper.java(无错误)
package com.movi.easypar;
public class EasyParHelper {
private int holeAmount = 0;
public int getHoles() {
return holeAmount;
}
public void setHoles(int holes) {
holeAmount = holes;
}
}
我想要的只是让用户能够在第一个屏幕上单击按钮“18”或“9”,并且让应用程序能够在其他时间使用该值。所以我需要在屏幕 1 中设置它,在屏幕 2 中我需要检索该值。
【问题讨论】:
-
您能否发布应用程序的整个代码或出现错误的最小应用程序?我有强烈的感觉,这是一个非常简单的错误(例如导入一个名为 GlobalVariables 的不同类)或更简单的错误。
-
完成(名称有所改变......但本质上,一切都应该相同。)
-
我真的很抱歉 Rob,我检查了 4 次代码,但我无法发现问题:(
-
我也是,对于像我这样的新人来说真的很沮丧。我只是不明白为什么它看不到它:(