我的活动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开发的新手。
答案 0 :(得分: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);
}
答案 1 :(得分:1)
您必须在TextView
之上EditText
并设置其属性android:visibility="gone"
。
现在,当您想要在TextView
显示您的文字时。执行getText()
以获取EditText
中的文字并使用setText()
为TextView
设置该文字,同时为TextView
设置setVisibility(View.VISIBLE)
,String text = editText.getText();
textView.setText(text);
textView.setVisibility(View.VISIBLE);
}。
等
{{1}}
答案 2 :(得分: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);
}
答案 3 :(得分:0)
您必须为新视图设置LayoutParams
(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);