我的按钮未被java程序中的xml文件引用

时间:2012-07-22 16:36:30

标签: java android xml

所以我创建了一个xml文件来尝试访问一个简单的按钮activity_first.xml文件是:

package com.example.name.calling.proj;

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >

<TextView
    android:id="@+id/tvDisplay"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="center"
    android:gravity="center"
    android:text="This is my first project. This is a test."
    android:textSize="20dp" />

<Button
    android:id="@+id/bFirst"
    android:layout_width="100dp"
    android:layout_height="50dp"
    android:layout_gravity="center"
    android:text="First Button" />

<Button
    android:id="@+id/bSecond"
    android:layout_width="100dp"
    android:layout_height="50dp"
    android:layout_gravity="center"
    android:text="Second Button" />

<Button
    android:id="@+id/bThird"
    android:layout_width="100dp"
    android:layout_height="50dp"
    android:layout_gravity="center"
    android:text="Third Button" />

<Button
    android:id="@+id/bFourth"
    android:layout_width="100dp"
    android:layout_height="50dp"
    android:layout_gravity="center"
    android:text="Fourth Button" />

</LinearLayout>

然后我制作了Java程序,(只是开头部分)是;

package com.example.name.calling.proj;

import android.R;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import android.support.v4.app.NavUtils;

int counter; 
Button one, two, three, four;
TextView display;   

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_first);
    Button one = (Button) findViewById(R.id.bFirst)
    display = (TextView) findViewById(R.id.tvDisplay);

然后有几个错误说:

activity_first cannot be resolved or is not a field.
bFirst cannot be resolved or is not a field.
tvDisplay cannot be resolved or is not a field.

因此,我在xml文件中设置的Id没有在java程序中引用,我不明白为什么。我在互联网上搜索过,从YouTube到这个网站,不知道出了什么问题。

2 个答案:

答案 0 :(得分:0)

您正在导入android.R而不是您自己的R.只需删除import android.R;行,错误就会消失。另外,不要在布局xml的顶部声明一个包。在进行这些更改后,您可能需要“清理”项目。

答案 1 :(得分:0)

你必须:

  1. 从布局文件中删除package com.example.name.calling.proj;
  2. 从您的活动中删除import android.R;
  3. 为您的布局文件activity_first.xml命名,而不是main.xml
  4. Button one = (Button) findViewById(R.id.bFirst)替换为one = (Button) findViewById(R.id.bFirst)因为您将按钮1声明为活动类的属性
  5. 清理您的项目