java - 单击 : EditText empty in android studio

标签 java android android-edittext

我有最简单的代码,它以前可以工作,但现在由于某种原因不能工作,我不明白为什么!而且这个问题很难用谷歌搜索。

我无法从 EditText 获取文本。我创建了一个新项目,我从另一个项目(它可以工作的地方)复制了确切的代码,但在这里它不起作用。我希望这个问题真的很明显,而且我已经盯着它看了太久了。

    import android.app.Activity;
    import android.os.Bundle;
    import android.util.Log;
    import android.view.View;
    import android.widget.EditText;

    public class MainActivity extends Activity {
    String artist;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        EditText edit = (EditText) findViewById(R.id.artistEditText);
        artist = edit.getText().toString();

    }

    protected void tryLetter(View v){
        System.out.println(artist);
        Log.d("string", artist);
        System.out.println("hi");
    }
}

打印艺术家的 println 根本不显示,当我按下 a 时,Log.dtryletter 也不会被调用按钮。

如果有什么不同的话,这是布局文件。

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:textAppearance="?android:attr/textAppearanceMedium"
    android:text="Ange en artist:"
    android:id="@+id/artistTextLabel"
    android:layout_alignParentTop="true"
    android:layout_alignParentStart="true"
    android:layout_marginTop="30dp" />

<EditText
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/artistEditText"
    android:layout_alignBottom="@+id/artistTextLabel"
    android:layout_alignEnd="@+id/searchBtn" />

<Button
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Sök"
    android:id="@+id/searchBtn"
    android:onClick="tryLetter"
    android:layout_below="@+id/artistEditText"
    android:layout_centerHorizontal="true" />
</RelativeLayout>

最佳答案

将此 artist = edit.getText().toString(); 放入此 tryLetter 中,因为您需要从 EditText 获取文本执行操作时意味着 onClick 并使您的 tryLetter 方法 public

because it will only work when your method is public

所以用这个

public void tryLetter(View v){
    artist = edit.getText().toString();
    System.out.println(artist);
    Log.d("string", artist);
    System.out.println("hi");
}

而不是这个protected void tryLetter(View v){

关于java - 单击 : EditText empty in android studio,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39920916/

相关文章:

java - 接口(interface)类型实例来自哪个类

java - Java 方法参数可以是声明大小的集合吗?

java - character_result_set 在 mysql 中为空

java - 在 Android 中使用带有 post 参数的 HttpClient 和 HttpPost

java - 单击任何 ListView 项目时,将该项目文本显示到 EditText 中

android - 重写 getText() 后,EditText 中的光标消失了

java - 读取 blob 格式

Android 在 fragment 之间传递位图

java - 检查 onCheckedChanged 是否由用户输入而不是设备旋转调用

android - 如何在android中为EditText添加边框