我已更新到ADT版本20.之后我无法使用EditText。对于API级别16,它显示一些错误。对于较低的API级别,没有错误,但我无法获得EditText的输入。它显示一个空的结果。
我使用的示例代码:
java代码
public class sample extends Activity {
EditText edt;
Button btn;
TextView txt;
String str;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
edt = (EditText) findViewById(R.id.editText1);
btn = (Button) findViewById(R.id.button1);
txt = (TextView) findViewById(R.id.textView2);
str = edt.getText().toString();
btn.setClickable(true);
btn.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
Log.d("WordWeb","entered - "+str);
txt.setText("you entered"+str);
}
});
}
}
XML编码
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/LinearLayout1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/Search"
android:textAppearance="?android:attr/textAppearanceLarge" />
<EditText
android:id="@+id/editText1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ems="10" />
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_margin="10pt"
android:text="Button" />
<TextView
android:id="@+id/textView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:text="Large Text"
android:textAppearance="?android:attr/textAppearanceLarge" />
答案 0 :(得分:2)
实际上,您正试图从EditText
的{{1}}中获取文字,其中没有任何文字包含。
所以只需将行onCreate()
放在按钮的click()中,然后就会得到结果,
像,,
str = edt.getText().toString();
答案 1 :(得分:1)
您的陈述str = edt.getText().toString();
应位于onClick
处理程序内。
答案 2 :(得分:1)
代码无法访问该值,因为在onCreate
结束后,EditText
abd str
中找到的值超出了范围。因此,将str = edt.getText().toString();
语句放在onClick
中,这样当用户单击该按钮时,它就可以访问该值。
答案 3 :(得分:0)
我认为您正试图在EditText
中获得onCreate()
(即edt)值,并且我认为您在完成onCreate()
方法后输入了值。所以这意味着您不是获得str
的价值。
这就是为什么您无法将值设置为TextView
。
答案 4 :(得分:0)
只需将文本放在按钮内,否则无论您在字符串中得到什么,它都无法正常工作