在Java类Android App之间传递字符串数组

时间:2010-12-06 03:33:16

标签: java android arrays string parameter-passing

我正在编写一个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]);
  }

    }

我有一种感觉,我错过了一些非常简单的东西,但任何帮助都会非常感激!

谢谢,

斯科特

2 个答案:

答案 0 :(得分:1)

您正在创建一个新的加速度计类,由于没有构造函数,因此完全未初始化,然后您访问其成员。当然它会为空。

不确定你的两个类是如何相关的,但是如果服务调用了活动,那么你需要通过意图传递字符串(例如通过额外的)。

旁注:类名应始终以大写字母开头。方法/变量名称应该具有驼峰大小写,即“updateArray”。此外,您可以通过选择并按CTRL + K来格式化您的代码。

答案 1 :(得分:0)

我认为你的第一个问题是你正在创建一个包含一百万个插槽的阵列。你真的有意这样做吗?这将需要大量的内存 - 可能比现有的更多。相反,您应该根据需要扩展一个字符串向量。