EditText获取多个按钮中的文字内容

2017-07-20  本文已影响0人  闲人逛小白

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获取多个按钮中的文字内容
上一篇下一篇

猜你喜欢

热点阅读