1
package com.example.one;

import android.os.Bundle;
import android.app.Activity;
import android.util.Log;
import android.view.Menu;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;

public class MainActivity extends Activity {
Button button;
 TextView txt1;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    addListenerOnButton();

}

public void addListenerOnButton(){

    button=(Button)findViewById(R.id.button1);//error line of code
    txt1=(TextView)findViewById(R.id.txt);//error line of code

    button.setOnClickListener(
            new View.OnClickListener()
            {
                public void onClick(View view)
                {
                    txt1.setText("hello");
                }
            });
}

@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;
}

}

我已经标记了行的错误代码但无法解析 .xml 是

<EditText
    android:id="@+id/txt"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:layout_alignParentTop="true"
    android:layout_marginLeft="26dp"
    android:layout_marginTop="26dp"
    android:ems="10"
    android:inputType="text" >

    <requestFocus />
</EditText>

<Button
    android:id="@+id/button1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignLeft="@+id/txt"
    android:layout_below="@+id/txt"
    android:layout_marginLeft="18dp"
    android:layout_marginTop="110dp"
    android:text="Button -MYBUT" />

我只想在我的应用程序中添加一个按钮和一个文本视图,因为我是一名初学者 Android 开发人员所以无法解决我的问题提前谢谢

4

4 回答 4

0

我只想知道关于这条线的解释

but = (Button) findViewById(R.id.but);

findViewById(Id)返回 aView并且您必须将其View转换为您正在使用的任何 UI 元素。

为了findViewById(Id)返回一个视图,你必须为每个 UI 元素分配一个 Id(如果你想在 java 中使用它):

<Button
    android:id="@+id/myButtonId" 
    [...]
 />

现在你可以这样做:

but = (Button) findViewById(R.id.myButtonId);

您还应该使用该onCreate()方法来初始化您的 UI 元素,而不是onCreateOptionsMenu().

于 2013-05-05T15:36:29.333 回答
0

findViewById充气菜单后尝试使用。您正试图在尚未附加到活动的视图中查找元素。

于 2013-05-05T15:37:57.157 回答
0

这很好,检查你的进口。在 android 中存在 2 种类型的 R。- R 由您的项目构建者生成 - R 由 android sdk 带来

我猜你从 android SDK 导入了 R,而不是你的项目生成的。这就是为什么 eclipse 对你大喊大叫。

另一种情况是,调用 OnCreateOptionsMenu() 回调的 findViewById() 方法试图访问尚未创建的视图,并返回 null。

编辑。R 的问题也可能与你的 xml 文件中奇怪的、不可见的和难以发现的错误有关。当您在某些 xml 文件中犯了大错误时,builder 会返回错误并且不会生成 R。但在某些情况下,构建器无法找到您的任何错误,但不会生成新的 R 类 - 这会导致您的 R 过时。

于 2013-05-05T15:40:31.417 回答
0

Eclipse 是一个诅咒 尽量不要使用它 伙计们 我更喜欢 NetBeans 我非常喜欢 NetBeans 为 NetBeans 脱帽致敬!我自己的问题的答案:

 it was  a real time fault of my eclipse (a curse) not my fault. The Solution is to restart the IDE or to press the Save All from File Menu of IDE

访问: https ://stackoverflow.com/a/7453201/2277645

于 2013-05-05T16:18:28.373 回答