当用户与Android应用程序交互时,如何在按下按钮之前存储用户输入的值? 这是我们编写的代码。请告诉我们如何纠正它:
public class configroom extends Activity {
public String nroom;
@override
protected void onCreate (Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_config_room);
Button nextBtn = (Button) findViewById(R.id.nextbtn1);
nextBtn.setOnClickListener(new View.OnClickListener(){
@override
public void onClick (View v) {
getnumrooms(nroom);
Intent i = new Intent (ConfigRoom.this, ConfigRoom2.class);
i.putExtra("NumOfRooms",nroom);
startActivityForResult(i,0);
}
});
}
void getnumrooms(String nroom) {
EditText numberDisplay = (EditText) findViewById(R.id.numrm1);
nroom = (numberDisplay.getText().toString());
}
@override
public boolean onCreateOptionsMenu (Menu menu) {
getMenuInflater().inflate(R.menu.activity_config_room1,menu);
return true;
}
}
答案 0 :(得分:0)
我不确定这是否是“按下按钮之前”的意思,但您可以使用TextChangedListener。
这或多或少看起来像这样:
EditText numberDisplay = (EditText) findViewById(R.id.numrm1);
numberDisplay.addTextChangedListener(new TextWatcher(){
public void afterTextChanged(Editable s) {
nroom = (s.getText().toString());
}
public void beforeTextChanged(CharSequence s, int start, int count, int after){}
public void onTextChanged(CharSequence s, int start, int before, int count){}
}
答案 1 :(得分:0)
在您的edittext上应用focuschangelistener
txtEdit.setOnFocusChangeListener(new OnFocusChangeListener() {
public void onFocusChange(View v, boolean hasFocus) {
if(!hasFocus)
//do job here owhen Edittext lose focus
}
});
希望它能满足您的目的
答案 2 :(得分:0)
在android
中使用 sharedpreferncespublic class configroom extends Activity {
public String nroom;
SharedPreferences sharedpreferences;
@override
protected void onCreate (Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_config_room);
Button nextBtn = (Button) findViewById(R.id.nextbtn1);
getnumrooms();
nextBtn.setOnClickListener(new View.OnClickListener(){
@override
public void onClick (View v) {
String nroom=sharedpreferences.getString("room","");
Intent i = new Intent (ConfigRoom.this, ConfigRoom2.class);
i.putExtra("NumOfRooms",nroom);
startActivityForResult(i,0);
}
});
}
void getnumrooms() {
EditText numberDisplay = (EditText) findViewById(R.id.numrm1);
nroom = (numberDisplay.getText().toString());
sharedpreferences = getSharedPreferences(MyPREFERENCES, Context.MODE_PRIVATE);
Editor editor = sharedpreferences.edit();
editor.putString("room", nroom);
editor.commit();
}
@override
public boolean onCreateOptionsMenu (Menu menu) {
getMenuInflater().inflate(R.menu.activity_config_room1,menu);
return true;
}
}