正确使用保存按钮代码

时间:2014-11-25 18:49:42

标签: java android

所以我一直在学习并尝试构建我通过在线教程制作的应用程序。这是一个简单的,简单的骨头,笔记应用程序。 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(); }
    });
   }

}

1 个答案:

答案 0 :(得分:0)

我认为您对是否已涵盖所有案件感到好奇。将onCreate中的侦听器和UI组件的设置分解为单独的方法可能是一种很好的做法,可以在初始化很多事情时更易于阅读。

使用后退按钮时可以覆盖案例。

当用户按下按钮时,您将覆盖该案例。

从可以看到的内容,您还可以选择离开屏幕的菜单。有几个人谈得如何检测屏幕是否到达背景。如果您真的想捕获所有案例,可以在活动的onPause()内进行保存。如果您按回去,回家或致电其他活动,将会被解雇。

区分另一个活动和主页按钮很难。但有些人指出onUserHint()是一种检测方法。我想我会对你能解释的问题提供一些反馈。