为什么我的android应用程序找不到XML文件中声明的文本视图或按钮?

时间:2015-07-25 16:51:11

标签: java android xml eclipse

我正在使用新波士顿的Eclipse在线编辑关于Android编程的教程,我陷入了困境。所以,一切都运行正常,我的GUI界面中有一个按钮和一个TextView。现在,当我访问我的java文件并尝试使用R.Id .....找不到它时,它无法识别XML文件中声明的Button id或TextView Id。为什么我会收到此错误?有人可以纠正我的错误。我正在使用Minimum SDK - API8- Android 2.2,Target SDK-API 13-Android 3.2和使用SDK-API 19-Android 4.4进行编译。

我在Stack Overflow My Android application cannot find buttons declared in the XML file上查看了以下文章。根据解决方案,我应该从我的java文件中删除导入android.R,我根本没有导入。所以,我有点困惑。

主要Activity.java

package com.example.androidprogram1;

import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.Button;
import android.widget.TextView;

public class MainActivity extends ActionBarActivity {
    TextView display;
    Button show;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        show = (Button)findViewById(R.id.button1);
        display = (TextView)findViewById(R.id.textView1);

//错误信息: - 在类型id(建议)中创建字段Button1 /在类型id中创建常量TextView1 .....这是我得到的错误。似乎按钮和textView的id没有添加到R.java文件

    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // Handle action bar item clicks here. The action bar will
        // automatically handle clicks on the Home/Up button, so long
        // as you specify a parent activity in AndroidManifest.xml.
        int id = item.getItemId();
        if (id == R.id.action_settings) {
            return true;
        }
        return super.onOptionsItemSelected(item);
    }
}

activity_main.xml中

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/tvView"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context="com.example.androidprogram1.MainActivity" >

    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/hello_world" />

    <Button
        android:id="@+id/button1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/textView1"
        android:layout_marginTop="65dp"
        android:layout_toRightOf="@+id/textView1"
        android:text="@string/hello_world" />

</RelativeLayout>

非常感谢。!!

1 个答案:

答案 0 :(得分:1)

您需要实例化TextViewButton

@Override
protected void onCreate(Bundle savedInstanceState) 
{
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    show = (Button) findViewById(R.id.button1);
    display = (TextView) findViewById(R.id.textView1);
}

编辑:您的错误消息似乎是一个Eclipse问题,而不是您已经完成的事情,除非您进入并对R.java进行了更改,您不应该这样做。保存项目,关闭它,重新打开并重新构建它。另外,如果您的班级恰好有import android.R,请将其删除。