【问题标题】:Android Programming Question安卓编程题
【发布时间】:2010-08-24 15:54:25
【问题描述】:

您好,我是一名几乎只使用 c++/c#/vbs 的程序员,现在刚刚进入 Android 开发领域。我遇到了一些我似乎无法找到答案/不想观看冗长的教程视频来找出答案的问题,所以我想我会在这里提问并获得快速答案。

我不知道这是否是最好的方法,所以我愿意接受任何建议。

我的程序需要一些自定义数据容器,假设我想要一个“成就”类,这样我就可以拥有它们的数组!

现在在 C# 中我会做类似的事情

public class Achievment  
{
    bool locked;
    string achName;
    string achSubName;

    public Achievement(string name, string subname)
    {
        //ctor code goes here
    }
}

这不是我需要的一切,但这就是我想要的数据布局的想法。然而,当我尝试在 Eclipse 中创建一个自定义类时,我对“公共类型成就必须在其自己的文件中定义?我在应用程序的 .java 文件中写这个......还有其他地方应该去吗?我感到很困惑。基本上 java 对我来说也可能是斯瓦希里语......我喜欢我直观的 c# 布局!

就像本质上我想将我的数据与我的 UI 分开存储,当我生成一个“成就列表”时,它会查看当前用户的成就数组并从那里填充。好,坏?

非常感谢任何不是以重定向到教程形式的答案!

【问题讨论】:

    标签: java android eclipse


    【解决方案1】:

    您应该在一个名为Achievement.java 的单独文件中定义Achievement 类。您还需要更改构造函数以将名称 name 作为类:

    ...
    public Achievement(String name, String subname)
    {
        //ctor code goes here
    }
    ...
    

    在 Java 中,类型是 String,而不是 string

    【讨论】:

      【解决方案2】:

      您要么必须从类中删除 public 修饰符(因此它的可见性将是默认级别 - 仅在放置您的 Application 类的包中可见)或者您需要将您的类移动到 Achievment.java 文件。

      【讨论】:

        【解决方案3】:

        在 java 中,公共类必须在自己的文件中,文件名与类名相同(在您的示例中,它必须在 Achievment.java 中)。

        【讨论】:

          【解决方案4】:

          在Eclipse Java 项目的源文件夹中创建一个名为Achievement.java 的文件。您还可能希望该类存在于包中,因此假设您的包名称为“com.acme”,那么您的 Achievement.java 文件将存在于以下目录结构中:

          <project-folder>/src/com/acme/Achievement.java
          

          现在,假设您已完成上述步骤,您还需要对您发布的代码进行以下更正:

          package com.acme // NOTE: This maps to the directory structure
          
          public class Achievement {
              private boolean locked;
              private String achName;
              private String achSubName;
          
              public Achievement(String name, String subname) {
                  this.achName = name;
                  this.achSubName = subname;
              }
          
              public boolean isLocked() {
                  return this.locked;
              }
          
              public void setLocked(boolean locked) {
                  this.locked = locked;
              }
          
              public String getName() {
                  return this.achName;
              }
          
              public void setName(String name) {
                  this.achName = name;
              }
          
              // etc ...
          }
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2011-11-14
            • 1970-01-01
            • 1970-01-01
            • 2012-05-07
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多