gpt4 book ai didi

java - R.layout 类型未定义方法 findViewById(int)

转载 作者:行者123 更新时间:2023-11-29 05:16:11 25 4
gpt4 key购买 nike

我最近开始编写 Android 程序,但遇到了一个问题。我正在尝试将单词作为字符串写入 EditText。

package com.example.generatoredifrasi;

import android.os.Bundle;
import android.R.layout;
import android.os.Bundle;

public class EditText
{

@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.my_layout);
EditText Text = (EditText) findViewById(R.id.EditText);
String string = Text.getText().toString(); // get the value from the EditText
}

}

findViewById 给我这个错误:The method findViewById (int) is undefined for the type R.layout

为什么?我如何解决这个问题?

有没有更简单的方法可以将 EditText 中的单词作为字符串写入?

最佳答案

您遇到的第一个错误“方法 findViewById (int) 未定义类型 R.layout”是因为您在导入中有 import R;,所以 layout其实就是R.layout,不是你的布局View。如果 layout 是对 View 的引用,则 findViewById() 将是一个有效的方法调用。

下一个错误“The method findViewById(int) is undefined for the type Generatore”看起来是因为你的类 Generatore 没有继承自 Activity,因此有没有可用的 findViewById() 方法。

没有看到你的整个类(class),很难确定你的问题出在哪里。这是获取 EditText 的字符串值所需的最低限度:

public class TestActivity extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.my_layout);
EditText Text = (EditText) findViewById(R.id.EditText);
String string = Text.getText().toString(); // get the value from the EditText
}
}

当然,您可能希望在用户输入后获取文本,也许是在单击按钮之类的过程中,因此您可以将 Text.getText().toString() 移动到别处,只要因为它位于 setContentView()findViewById() 之后。

关于java - R.layout 类型未定义方法 findViewById(int),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26469346/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com