我有最简单的代码,它以前工作过,但现在由于某种原因,它没有,我不知道为什么!这个问题对谷歌来说相当困难。
我无法从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要打印的艺术家根本不显示,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里面,因为在执行action时需要从EditText中获取文本meanonClick,并使您的tryLetter方法public
因为只有当你的方法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){

07-26 00:46