그래서 저는 온라인 자습서를 따라 만든 앱을 배우려고하고 있습니다. 그것은 단순한, 맨손의 뼈, 메모 복용 응용 프로그램입니다. 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(); }
});
}
}
무엇이 당신의 질문입니까? 정확히 무엇에 대한 피드백? 작동하지 않습니까? – codeMagic
명확하지 않으면 죄송합니다. 그것은 효과가있다. 메소드를 작성하고 onCreate()에서 호출 한 방식이 올바른지 알고 싶습니다. 내 논리에 대한 피드백을 통해 애플리케이션에 새로운 요소를 구현하는 방법에 대해, 나는 올바른 방향에 있는지 알고 싶습니다. @codeMagic –
당신은 그 함수를'onButtonSave()'라고 불렀습니다. 당신이 스스로 부르면 안되는 핸들러처럼 보이므로 좋지 않습니다. installSaveButton과 같은 것으로 이름을 바꾸는 것이 좋습니다. 그러나 그 때 나는 당신이 왜 그것을 위해 별도의 기능이 필요한지 궁금합니다. onCreate에서 모든 것을 개선하십시오. – greenapps