所以我一直在学习并尝试构建我通过在线教程制作的应用程序。这是一个简单的,简单的骨头,笔记应用程序。 mainActivity只是在列表视图中显示注释对象。第二个屏幕/活动是我正在处理的那个,尝试尽我所能添加代码。到目前为止,我添加了一个保存按钮,只需保存文本/字符串值并将用户带回主活动。我想对我的onButtonSave方法的实现提出一些反馈:
public class NoteEditorActivity extends Activity {
private NoteItem note;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_note_editor);
getActionBar().setDisplayHomeAsUpEnabled(true);
Intent intent = this.getIntent();
note = new NoteItem();
note.setKey(intent.getStringExtra("key"));
note.setText(intent.getStringExtra("text"));
EditText et = (EditText) findViewById(R.id.noteText);
et.setText(note.getText());
et.setSelection(note.getText().length());
// I'm wondering if this is the correct way to call my onButtonSave method
onButtonSave();
}
private void saveAndFinish() {
EditText et = (EditText) findViewById(R.id.noteText);
String noteText = et.getText().toString();
Intent intent = new Intent();
intent.putExtra("key", note.getKey());
intent.putExtra("text", noteText);
setResult(RESULT_OK, intent);
finish();
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
if (item.getItemId() == android.R.id.home) {
saveAndFinish();
}
return false;
}
@Override
public void onBackPressed() {
saveAndFinish();
}
// This is the code I've added for the save button.
public void onButtonSave(){
final Button button = (Button) findViewById(R.id.saveButton);
button.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
button.setText("Saved!");
saveAndFinish(); }
});
}
}
答案 0 :(得分:0)
我认为您对是否已涵盖所有案件感到好奇。将onCreate
中的侦听器和UI组件的设置分解为单独的方法可能是一种很好的做法,可以在初始化很多事情时更易于阅读。
使用后退按钮时可以覆盖案例。
当用户按下按钮时,您将覆盖该案例。
从可以看到的内容,您还可以选择离开屏幕的菜单。有几个人谈得如何检测屏幕是否到达背景。如果您真的想捕获所有案例,可以在活动的onPause()
内进行保存。如果您按回去,回家或致电其他活动,将会被解雇。
区分另一个活动和主页按钮很难。但有些人指出onUserHint()
是一种检测方法。我想我会对你能解释的问题提供一些反馈。