【问题标题】:Very simple example about a button in Android?关于Android中按钮的非常简单的例子?
【发布时间】:2012-11-05 00:40:36
【问题描述】:

我想要一个非常简单的按钮,带有一些解释/可视化的东西,也许是 onCreate/onLauncher 来做让你微笑的事情!我尝试过按钮here,但错误here,如果有人可以指导我找到一个关于Android 中按钮的现成工作示例,这可能是最简单的。历史显示了 R 和 XML 文件的问题,如果有人能清楚地说明如何做到这一点,这可能是最简单的:一个非常简单的按钮。它的目录树等?

请提供一个关于 Android 中按钮的简单示例,仅此而已。

【问题讨论】:

  • 我认为你已经构建了一个 java 项目,而不是一个 android 项目。
  • 我简化了问题,以便人们清楚地看到我想要做什么:这可能只是几行代码。没有黑魔法,保持简单!您可以在上面的网址中看到我的试用版。

标签: android eclipse user-interface button


【解决方案1】:

进入按钮的xml并设置“runClient”的onClick属性。

<Button
        android:id="@+id/button1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_alignParentRight="true"
        android:onClick="runClient"
        android:text="=)" />

更新:

你应该在 eclipse 中看到类似的东西。

更新 2:

这是一个示例 android 项目文件树。突出显示的是 layout.xml 应该在的位置。

【讨论】:

  • 更新了我的 q,我需要创建一些 XML 文件到 Src 吗?喜欢here?我还不明白我的代码将如何引用它们?我是否像导入包一样导入它们?
  • 上面链接中的那张照片似乎不是 Android 项目。我更新了我的问题以显示示例 Android 项目文件树。
【解决方案2】:

首先,让我们看看您的test.java,它不会按原样工作。我希望您了解面向对象编程的基本概念并摆脱静态方法。

在 Android 中有一个名为 Activity 的类,您需要对其进行扩展。如果您关注了Lazy Ninja's answerthe Eclipse plugin 可能已经为您创建了那个(可能称为MainActivity.java)。简单地说,一个活动代表你应用程序中的一个视图。在您的简单示例中,大多数(如果不是全部)您的代码都属于该类。

在 Android 中,您不使用 public static void main(String[] args),而是覆盖 Activity 的 onCreate 方法。在AndroidManifest.xml 中,您定义了您的活动(此时您只需要一个)以及哪个是您的应用程序启动时启动的活动,其onCreate 是整个应用程序的起点(再次查看创建的结构由 Eclipse)。

onCreate 中,您应该使用您希望在该活动中使用的布局调用setContentView。布局作为来自生成的 R 类的整数参数提供给 setContentView,例如映射到位于 res/layout/layout_file_name.xml 的 XML 文件的 R.layout.layout_file_name

布局文件是包含所需布局声明的文件。在您的情况下,它可能有一个 LinearLayout 作为根元素和两个 Buttons。

【讨论】:

  • 我该怎么办here?从这一点开始,我无法继续前进,无法理解它在做什么,所以总是跳过活动。我使用 API 10 2.3 for dev,因为我有那个版本的手机。
  • 只需选择None 作为Navigation Type
  • 您应该始终使用最新的 API 作为targetSdkVersion,并将minSdkVersion 设置为您想要支持的最低值。如果您尝试使用最低版本不支持的东西,Eclipse 插件将会给您带来错误。这些属性在AndroidManifest.xml 中的&lt;uses-sdk&gt; 中定义。
  • 尝试制作一个使用声音 here 的小型演示。还不能理解 setContentView,需要一些时间。无论如何 +1 的帮助,必须阅读一些文档才能将它们放在一起。
  • 现在看起来好多了。但是,请参阅UI events guide,了解如何设置b1 和一个点击监听器。我建议您保留此问题以实现所需的布局,并设置另一个以进行进一步开发。
【解决方案3】:

在你的主要活动中使用这样的东西:

//Part of onCreate
Button b1;
setContentView(whatever.it.is);
b1 = (Button)findViewById(R.id.buttonID);

b1.setOnClickListener(buttonAddOnClickListener);

//Outside of onCreate, on its own
Button.OnClickListener buttonAddOnClickListener  = new Button.OnClickListener(){
    @Override
    public void onClick(View arg0) {
        //Switch statement so you don't have to use a lot of click listeners
        switch (arg0.getId()) {
            case R.id.b1:
                doSomething();
            case R.id.b2:
                doSomethingElse();
        }
    }
};

在实现按钮时,请确保在 XML 中添加:

android:id="@+id/anID"

把一个ID改成你想要的ID。

我也更喜欢 IntelliJ (http://www.jetbrains.com/idea/) 用于 Android 编程。您的 XML 应位于名为“res”的文件夹中,然后位于子目录“layout”中。如果您没有看到这些文件夹,您的项目可能没有正确设置。

【讨论】:

  • 您在哪里引用您使用的 XML 文件还是我实际上需要任何 XML 文件?按钮是否存在良好的默认值?
  • 我仍然认为主要问题是hhh似乎没有Android项目。
  • @EGHDK 我现在有,但我根本无法理解 XML,尽管 +1 我喜欢这里的代码——现在试图填补这个和 xml 之间的空白。我不明白 XML 的东西是否像 Java 包或其他东西一样工作?!它们是像带有方法或其他东西的对象一样工作吗?阅读xml时迷失了方向:如何从源代码中引用?
  • 您在 Android 中的布局可能看起来是“拖放”,但实际上是在 xml 中完成的。这是一件需要理解的重要事情,在你理解之前我不会继续前进。如果您需要更多帮助,请发布您的文件树的图片。正如你在这个答案中看到的。 @GLaDOS 也指 XML。这是至关重要的。
  • 如需更多帮助,请尝试查看此处Android Developer Website XML Help
【解决方案4】:

日食

  1. 点击文件->新建->其他,弹出对话框。
  2. 从对话框中,选择 Android -> Android 应用程序项目,然后 点击下一步。
  3. 将弹出一个新的 Android 项目对话框,填写 Application, Project 和包名选择SDK版本
  4. 按照向导进行操作,直到单击“完成”

在那里,您将拥有您的 android 项目文件。而您的布局 xml 文件将是 res -> 布局文件夹。
我认为您应该阅读 Android Training 以帮助您入门。

【讨论】:

    【解决方案5】:

    一步一步回答你的问题:

    1. 大多数情况下,XML 文件存储在 /res 文件夹中,您可以在其中定义 Android UI 的界面。例如,如果您的应用中有 2 个活动,则可以创建 2 个 xml 文件(活动的布局)代表这 2 个活动。
    2. /src 目录中只存放 java 文件。应在 /res/... 目录中创建 XML 文件。
    3. XML 文件的每个视图都有一个 id。当你第一次创建一个 android 项目时。主 Activity 已经使用 Activity 类的方法设置了您的第一个应用程序的内容视图。

      setContentView(R.layout.main)

    -layout - 表示 /res 文件夹中的布局文件夹 -main - 表示 /res/layout 文件夹中的 XML 文件。

    您可以通过android doc了解更多信息

    【讨论】:

    • 我无法完全理解这一点,更新 q 中的谜题 3 我尝试按照说明进行操作,但我收到了关于缺少 R 的恼人错误?!还不了解 XML 元素的加载。
    • 您的 R.java 是否丢失? myButton1 是按钮视图而不是布局视图。 setContentView 是一种设置活动布局视图的方法。 http://www.fileden.com/files/2012/10/27/3361246/asdfasdfas.png
    【解决方案6】:

    制作按钮或任何其他 Android GUI 的最简单方法是使用 REBOL 3:

    REBOL [] 
    load-gui 
    view [button "Click Me" on-action [request "" "Clicked!"]]
    

    这是一个功能齐全的 GUI 程序,具有核心 REBOL 语言的所有功能,可用于网络、列表处理、文本解析、文件管理等。该程序以及 R3 的任何其他程序都可以在 Android 和桌面上运行操作系统,使用完全相同代码。看看:

    http://rebolforum.com/index.cgi?f=printtopic&permalink=Nick25-Aug-2013/10:08:38-7:00&archiveflag=new

    【讨论】:

      【解决方案7】:

      根据您更新的信息和代码,您似乎没有正确初始化按钮。

      这行不需要:

      setContentView(myButton1);
      

      什么 setContentView();它是否设置了 xml 视图。

      Button myButton1 = (Button) findViewById(R.id.button1);
      

      上面这行是对你真正有好处的。您现在可以使用:

      myButton1.setOnClickListener(buttonListener);
      
      Button.OnClickListener buttonListener  = new Button.OnClickListener(){
          @Override
          public void onClick(View arg0) {
              //Switch statement so you don't have to use a lot of click listeners
              switch (arg0.getId()) {
                  case R.id.myButton1:
                      doSomething();
                  case R.id.b2:
                      doSomethingElse();
              }
          }
      };
      

      此外,您设置的代码不是 Android 设置。你正在使用

      public static void main(String[] args)
      

      您不希望在 Android 项目中出现。请观看一些有关如何正确设置的视频。这一行:

      Button myButton1 = (Button) findViewById(R.id.button1);
      

      出现错误,因为您的 IDE 目前不知道“R”,因为项目设置不正确。一旦你这样做了,你的很多问题都会得到解决。您将运行它而不是通过 main(String[] args)、onCreate() 等...我再次强烈推荐 IntelliJ,它使设置 Android 项目变得非常容易,甚至比 Eclipse 更容易。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-11-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-04-30
        • 1970-01-01
        相关资源
        最近更新 更多