EditText获取字符串可以通过setText()方法来设置,但是通常下一个内容都会覆盖前一个内容,这样有时就不能达到连续点击输入的效果了!
正文要点:
1.新建一个项目,之后在主布局文件中添加一个EditText和三个Button按钮。
main.xml
<pre>
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<EditText
android:layout_height="wrap_content"
android:layout_width="match_parent"
android:ems="10"
android:id="@+id/ed"/>
<Button
android:layout_height="wrap_content"
android:layout_width="match_parent"
android:text="字符串一"
android:id="@+id/bt1"
android:onClick="字符1"/>
<Button
android:layout_height="wrap_content"
android:layout_width="match_parent"
android:text="字符串二"
android:id="@+id/bt2"
android:onClick="字符2"/>
<Button
android:layout_height="wrap_content"
android:layout_width="match_parent"
android:text="字符串三"
android:id="@+id/bt3"
android:onClick="字符3"/>
</LinearLayout>
</pre>
上面Button控件按钮中的android:onClick属性是设置其可点击,这样在之后的java中为其绑定监听器设置点击事件就方便些。
2.Java代码
<pre>
package com.mycompany.myapp10;
import android.app.;
import android.os.;
import android.view.;
import android.widget.;
public class MainActivity extends Activity
{
//声明控件
private EditText ed;
private Button bt1,bt2,bt3;
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
//绑定控件ID
ed=(EditText) findViewById(R.id.ed);
bt1=(Button) findViewById(R.id.bt1);
bt2=(Button) findViewById(R.id.bt2);
bt3=(Button) findViewById(R.id.bt3);
}
//控件点击事件
public void 字符1(View view){
ed.setText(ed.getText().toString()+bt1.getText().toString());
//设置光标在最后
ed.setSelection (ed.getText ().toString ().length ());
}
public void 字符2(View view){
ed.setText(ed.getText().toString()+bt2.getText().toString());
//设置光标在最后
ed.setSelection (ed.getText ().toString ().length ());
}
public void 字符3(View view){
ed.setText(ed.getText().toString()+bt3.getText().toString());
//设置光标在最后
ed.setSelection (ed.getText ().toString ().length ());
}
}
</pre>
3.解释:
ed.setText(ed.getText().toString()+bt1.getText().toString());
第一次点击时,显示的内容只有bt1控件中的文字,因为第一次时EditText控件内容是空的,所以和bt1拼接成的字符就相当于:0+1="1";
第二次点击时,显示的是第一次bt1的内容+bt1控件中的文字,所以此时拼接成的字符就相当于:1+1="11"
后面的以此类推.........
4.小白一枚,记录学习过程。文章中有不足,均可指点指点,亦有什么更好的实现(相似)方法望不奢指教,共勉齐学习!
EditText获取多个按钮中的文字内容
网友评论