Android 如何实现EditText并使用单个按钮保存已编辑的文本?
在按钮上执行onclick ListenerAndroid 如何实现EditText并使用单个按钮保存已编辑的文本?,android,buttonclick,Android,Buttonclick,在按钮上执行onclick Listener private void clickListener(){ edit.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { Toast.makeText(getActivity(),"Edit is tapped",Toast.LENGTH_SHORT).sh
private void clickListener(){
edit.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Toast.makeText(getActivity(),"Edit is tapped",Toast.LENGTH_SHORT).show();
已启用以编辑文本
存储更改的值并在编辑文本中显示
禁用编辑文本
试试这个:
private boolean isEditTextEnabled;
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (isEditTextEnabled) {
String text = editText.getText().toString();
//save your text
} else {
editText.setEnabled(true);
isEditTextEnabled = true;
}
}
});
使每个巡更代码段都成为私有方法:
private void enable() {
tv_location.setFocusable(true);
tv_location.setFocusableInTouchMode(true);
sample.setFocusable(true);
sample.setFocusableInTouchMode(true);
edit.setPressed(false);
edit.setText("Save");
}
private void disable() {
tv_location.setFocusable(false);
tv_location.setFocusableInTouchMode(false);
sample.setFocusableInTouchMode(false);
sample.setFocusable(false);
}
private void store() {
final String location_txt = tv_location.getText().toString();
tv_location.setText(location_txt);
final String sample_text = sample.getText().toString();
sample.setText(sample_text);
}
这是你的听众:
edit.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (sample.isEnabled()) {
if (!sample.getText().toString().trim().isEmpty()) {
store();
disable();
}
} else {
enable();
}
}
});
我不明白,请详细说明你的问题。我有一个按钮,它应该像被点击时一样工作。它启用“编辑文本”字段,允许用户编辑文本,当文本更改时,用户应能够仅使用此按钮保存更改的文本。
private boolean isEditTextEnabled;
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (isEditTextEnabled) {
String text = editText.getText().toString();
//save your text
} else {
editText.setEnabled(true);
isEditTextEnabled = true;
}
}
});
private void enable() {
tv_location.setFocusable(true);
tv_location.setFocusableInTouchMode(true);
sample.setFocusable(true);
sample.setFocusableInTouchMode(true);
edit.setPressed(false);
edit.setText("Save");
}
private void disable() {
tv_location.setFocusable(false);
tv_location.setFocusableInTouchMode(false);
sample.setFocusableInTouchMode(false);
sample.setFocusable(false);
}
private void store() {
final String location_txt = tv_location.getText().toString();
tv_location.setText(location_txt);
final String sample_text = sample.getText().toString();
sample.setText(sample_text);
}
edit.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (sample.isEnabled()) {
if (!sample.getText().toString().trim().isEmpty()) {
store();
disable();
}
} else {
enable();
}
}
});