如何更改android中单击按钮的文本?

时间:2016-09-18 07:03:50

标签: java android

我需要通过从编辑文本中获取值来设置按钮的文本,当单击按钮时,它必须将其文本更改为Edittext中指定的文本。

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);


    final Button btn=(Button)findViewById(R.id.button);
    assert btn != null;
    btn.setOnClickListener(
            new View.OnClickListener(){

                public void onClick(View v)
                {
                    TextView txt=(TextView)findViewById(R.id.editText);
                    btn.setText((CharSequence) txt);


                }
            }

    );
}

3 个答案:

答案 0 :(得分:1)

您只需要定义EditText变量而不是TextView并调用editText的getText方法,然后调用toString方法:

final Button btn=(Button)findViewById(R.id.button);
assert btn != null;
btn.setOnClickListener(
        new View.OnClickListener(){

            public void onClick(View v)
            {
                EditText txt = (EditText)findViewById(R.id.editText);
                btn.setText(txt.getText().toString());
            }
        }

);

答案 1 :(得分:1)

全球宣布您的观点

Button btn;
EditText txt;

在onCreate方法

中设置您的ID
btn=(Button)findViewById(R.id.button);
txt=(EditText)findViewById(R.id.editText);

保持你的onclicklistener如下

    btn.setOnClickListener(
            new View.OnClickListener(){

                public void onClick(View v)
                {
                 final String newText=txt.getText().toString().trim();
                 if(newText.length()>0){
                    btn.setText(newText);
                 }


                }
            }

    );

答案 2 :(得分:0)

        final Button btn = (Button)findViewById(R.id.button);
        if (btn != null) {
            btn.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    EditText et = (EditText)findViewById(R.id.editText);
                    if (et != null){
                        Button btn = (Button)view;
                        btn.setText(et.getText());
                    }
                }               
            });
        }