-1

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" />

4

5 に答える 5

3

実際には、まだテキストが含まれていない ActivityからテキストEditTextを取得しようとしています。onCreate()

したがって str = edt.getText().toString();、ボタンの click() に行を入れるだけで、結果が得られます。

お気に入り、、

btn.setClickable(true);
btn.setOnClickListener(new OnClickListener() {

    public void onClick(View v) {
        str = edt.getText().toString();
        Log.d("WordWeb","entered - "+str);
        txt.setText("you entered"+str);
    }
});
于 2012-08-20T11:52:32.080 に答える
2

終了後にabdでonCreate見つかった値が範囲外であるため、コードは値にアクセスできません。したがって、ユーザーがボタンをクリックしたときに値にアクセスできるように、ステートメントを の中に入れます。EditTextstrstr = edt.getText().toString();onClick

于 2012-08-20T11:59:50.317 に答える
2

ステートメントはハンドラーstr = edt.getText().toString();内にある必要があります。onClick

于 2012-08-20T11:54:18.483 に答える
0

で値を取得しようとしていると思いますEditText(つまり、edt) 。メソッドonCreate()の完了後に値を入力していると思います。onCreate()つまり、値を取得していないことを意味しますstr

そのため、値を に設定できませんTextView

于 2012-08-20T11:54:06.900 に答える