0

アクティビティ xml に EditText と Button があります。私がやりたかったのは、ボタンをクリックすると、EditText のテキストが EditText の上の TextView に表示されるようにすることです。

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="bottom"
android:orientation="vertical" >

<EditText 
    android:id="@+id/edit_message"
    android:hint="@string/hint_message"
    android:layout_height="wrap_content"
    android:layout_width="wrap_content"/>

<Button 
    android:id="@+id/button_send"
    android:text="@string/button_text"
    android:layout_height="wrap_content"
    android:layout_width="wrap_content"
    android:onClick="sendMessage"/>

これは私の sendMessage() です

public void sendMessage(View view){
    EditText editText=(EditText)findViewById(R.id.edit_message);
    String message=editText.getText().toString();       
    LinearLayout layout=(LinearLayout)findViewById(R.id.layout01);
    TextView text=new TextView(this);
    text.setText(message);
    layout.addView(text);
}

ボタンをクリックしても何も起こりません。何もありません。なぜこれが機能しないのですか?私はAndroid開発にかなり慣れていません。

4

4 に答える 4

2

この行を LinearLayout タグに追加します。

android:id="@+id/linear"

sendMessage メソッドを次のように変更します

public void sendMessage(View view){
EditText editText=(EditText)findViewById(R.id.edit_message);
String message=editText.getText().toString();       
LinearLayout layout=(LinearLayout)findViewById(R.id.linear);
TextView text=new TextView(this);
text.setText(message);
text.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT));
layout.addView(text);

}

于 2012-07-08T08:08:22.913 に答える
1

XML を次のように変更します。

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="bottom"
android:id="@+id/linear"
android:orientation="vertical" >

<TextView
android:id="@+id/tv" 
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text=""
/>

<EditText 
android:id="@+id/edit_message"
android:hint="@string/hint_message"
android:layout_height="wrap_content"
android:layout_width="wrap_content"/>

<Button 
android:id="@+id/button_send"
android:text="@string/button_text"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:onClick="sendMessage"/>

これで sendMessage() は次のようになります。

public void sendMessage(View view){
EditText editText=(EditText)findViewById(R.id.edit_message);
String message=editText.getText().toString();       
LinearLayout layout=(LinearLayout)findViewById(R.id.linear);
TextView text=(TextView)findViewById(R.id.tv);
text.setText(message);

}

于 2012-07-08T08:18:04.283 に答える
1

TextViewあなたの上にがありEditText、そのプロパティを設定する必要がありますandroid:visibility="gone"

今、あなたがその中にあなたのテキストを表示したいときTextView、その時。dogetText()からテキストを取得し、 forを使用しEditTextてそのテキストを設定し、同時にdoを使用します。setText()TextViewTextViewsetVisibility(View.VISIBLE)

お気に入り、

String text = editText.getText();
textView.setText(text);
textView.setVisibility(View.VISIBLE);
于 2012-07-08T08:03:31.177 に答える
0

LayoutParams新しい View に (wrap_content/match_parent)を設定する必要があります。

TextView text = new TextView(this);

text.setLayoutParams(new LinearLayout.LayoutParams(
        LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));    

text.setText(message);
layout.addView(text);
于 2012-07-08T08:04:50.127 に答える