【问题标题】:Passing a String Array Between Java Classes Android App在 Java 类 Android 应用程序之间传递字符串数组
【发布时间】:2011-05-20 18:18:09
【问题描述】:

我正在编写一个 Android 应用程序,我需要在两个类之间传递一个字符串数组。字符串初始化很好,我可以在一个类中很好地输出字符串的内容,但是当我尝试将它传递给另一个类时,我得到一个空指针异常错误。以下是我的代码的精简版:

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]);
  }

    }

我感觉我遗漏了一些非常简单的东西,但我们将不胜感激!

谢谢,

斯科特

【问题讨论】:

    标签: java android arrays string parameter-passing


    【解决方案1】:

    我认为,您的第一个问题是您正在创建一个包含一百万个插槽的数组。你真的打算这样做吗?这将占用大量内存——很可能超出可用内存。相反,您应该考虑拥有一个根据需要扩展的字符串向量。

    【讨论】:

    • 我怀疑百万槽数组会导致NullPointerException 被抛出。如果 OP 内存不足,您会看到 OutOfMemoryException 或类似的东西。虽然,我同意它可能是一个不必要的大数组。
    • 是的,我不是在回答这个问题,而是在抱怨编程风格。
    【解决方案2】:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-05-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-08-17
      • 1970-01-01
      • 2018-06-29
      • 1970-01-01
      相关资源
      最近更新 更多