我知道这个问题已被问过一百万次,因为我做了一些研究并发现了很多与此相关的话题。我曾尝试使用这些线程中的答案,但遇到了一些麻烦。
我希望设置一些我可以在所有 Activity 中使用的变量。
我创建了一个 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;
}
}
在我发生一切的主要 Activity 中,我有以下内容:
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 中我需要检索该值。
最佳答案
按如下方式创建一个“助手”类...
package com.my.application
public class MyAppHelper {
private int holeAmount = 0;
public int getHoles() {
return holeAmount;
}
public void setHoles(int holes) {
holeAmount = holes;
}
}
然后为您的应用程序类执行以下操作...
package com.my.application
public class MyApplication extends Application {
public static MyAppHelper helper = new MyAppHelper();
}
要访问助手中的 get/set 方法,您只需调用...
package com.my.application
public class MyActivity extends Activity {
// Normal onCreate(...) etc here
public void someMethod() {
MyApplication.helper.setHoles(30);
int holes = MyApplication.helper.getHoles();
}
}
关于android - 使用全局变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6480411/