我正在编写一个Android应用程序,我需要在两个类之间传递一个字符串数组。字符串初始化很好,我可以在一个类中输出字符串的内容,但是当我尝试将它传递给另一个类时,我得到一个Null Pointer Exception错误。以下是我的代码的精简版本:
accelerometer.java:
public class accelerometer extends Service {
public String movement[];
public void onCreate() {
movement = new String[1000000];
}
public void updatearray() {
movement[arraypos]=getCurrentTimeString();
//Toast.makeText(this, movement[arraypos] , Toast.LENGTH_SHORT).show(); //this correctly displays each position in the array every time it updates so I know the array is working correctly in this file
arraypos+=1;
}
public String[] getmovement(){
return movement;
}
}
wakeupalarm.java:
public class wakeupalarm extends Activity {
private TextView herestext_;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.wakeup);
herestext_ = (TextView) findViewById(R.id.TextView01);
accelerometer accelerometercall = new accelerometer();
String movearray[] = accelerometercall.getmovement();
herestext_.setText(movearray[2]);
}
}
我有一种感觉,我错过了一些非常简单的东西,但任何帮助都会非常感激!
谢谢,
斯科特
答案 0 :(得分:1)
您正在创建一个新的加速度计类,由于没有构造函数,因此完全未初始化,然后您访问其成员。当然它会为空。
不确定你的两个类是如何相关的,但是如果服务调用了活动,那么你需要通过意图传递字符串(例如通过额外的)。
旁注:类名应始终以大写字母开头。方法/变量名称应该具有驼峰大小写,即“updateArray”。此外,您可以通过选择并按CTRL + K来格式化您的代码。
答案 1 :(得分:0)
我认为你的第一个问题是你正在创建一个包含一百万个插槽的阵列。你真的有意这样做吗?这将需要大量的内存 - 可能比现有的更多。相反,您应该根据需要扩展一个字符串向量。