我有最简单的代码,它以前工作过,但现在由于某种原因,它没有,我不知道为什么!这个问题对谷歌来说相当困难。
我无法从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.d
和tryletter
也不会在我按下按钮时调用。这是布局文件,如果有区别的话。
<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){