java - 这个简单的RelativeLayout Android 程序有什么问题?

标签 java android button android-relativelayout android-xml

我创建了这个非常简单的 RelativeLayout 作为我稍后可能想做的事情的测试。目前,应该只有 3 个按钮,secondalphamode 彼此相对排列。

我有两个问题:首先,XML 布局文件有问题,我不知道是什么问题,因为我已经彻底检查过它。这会导致布局的第 10 行和第 11 行出现错误。其次,没有像 Android Activity 中通常那样生成 R 文件。这会导致主代码第 11 行出现错误,因为它尝试从 R 文件中调用某些内容。

我的代码如下:

布局:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >
    <Button
        android:id="@+id/second"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_above="@id/alpha"
        android:layout_toLeftOf="@id/mode"
        android:text="@string/second"
        android:layout_alignParentLeft="true" />
    <Button
        android:id="@+id/alpha"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@id/second"
        android:layout_alignParentLeft="true"
        android:text="@string/alpha" />
    <Button
        android:id="@+id/mode"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_toRightOf="@id/second"
        android:layout_alignParentLeft="true"
        android:text="@string/mode" />
</RelativeLayout>

主要 Activity 代码:

package com.example.TI84;

import android.app.Activity;
import android.os.Bundle;

public class TI84GraphingCalculatorActivity extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
    }
}

感谢您的帮助!

最佳答案

RelativeLayouts,顾名思义,以相对方式组织元素。因此,您无法从文件上方的小部件引用文件中下方的小部件。此布局将起作用:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

    <Button
        android:id="@+id/mode"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:text="@string/alpha" />

    <Button
        android:id="@+id/second"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_toRightOf="@id/mode"
        android:text="@string/second" />

    <Button
        android:id="@+id/alpha"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@id/mode"
        android:layout_below="@id/mode"
        android:text="@string/alpha" />

</RelativeLayout>

您没有获得 R.java,因为当 XML 文件中存在错误时不会生成它。

此外,虽然您没有要求这样做,但您的原始 XML 文件具有循环依赖关系。这意味着两个小部件以一种创建无限循环的方式相互引用,就像 A 在 B 的左侧,B 在 A 的右侧

关于java - 这个简单的RelativeLayout Android 程序有什么问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11197609/

相关文章:

java - Android onCreate 没有被调用?

Java-用鼠标绘制形状并在单击按钮后拖动

java - Apache 速度 : Escape character not working

java - 对哈希表中使用的字符串进行哈希处理(双重哈希)

java - 属性过滤中的转义字符 (Maven)

java - 在 Android 中实现 View.OnClickListener 的最佳方式

java - 下拉菜单 "Conversion Error setting value ' ' 为 'null Converter' "

android - 自动填充后,EditText 周围会出现黄色框

android - 按钮点击-进度动画

jQuery 用值替换输入元素