Android Implement Edit in place (autosave)

 

1. Menu > Code > Override method


2. Change code


package com.example.notekeeper;

import android.content.Intent;
import android.os.Bundle;

import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.widget.Toolbar;

import android.view.Menu;
import android.view.MenuItem;
import android.widget.ArrayAdapter;
import android.widget.EditText;
import android.widget.Spinner;

import java.util.List;

public class NoteActivity extends AppCompatActivity {

public static final String NOTE_POSITION = "com.example.notekeeper.Note_POSITION";
public static final int POSITION_NOT_SET = -1;
private NoteInfo mNote;
private boolean mIsNewNote;
private Spinner mSpinnerCourses;
private EditText mTextNoteTitle;
private EditText mTextNoteText;
private int mNotePosition;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_note);
Toolbar toolbar = findViewById(R.id.toolbar);
setSupportActionBar(toolbar);

mSpinnerCourses = findViewById(R.id.spinner_course);
List<CourseInfo> courses = DataManager.getInstance().getCourses();
ArrayAdapter<CourseInfo> adapterCourses =
new ArrayAdapter<>(this, android.R.layout.simple_spinner_item, courses);
adapterCourses.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
mSpinnerCourses.setAdapter(adapterCourses);

readDisplayStateValues();

mTextNoteTitle = findViewById(R.id.text_note_title);
mTextNoteText = findViewById(R.id.text_note_text);

if (!mIsNewNote){
displayNote(mSpinnerCourses, mTextNoteTitle, mTextNoteText);
}

}

private void displayNote(Spinner spinnerCourses, EditText textNoteTitle, EditText textNoteText) {


List<CourseInfo> courses = DataManager.getInstance().getCourses();
int courseIndex = courses.indexOf(mNote.getCourse());
spinnerCourses.setSelection(courseIndex);

textNoteTitle.setText(mNote.getTitle());
textNoteText.setText(mNote.getText());


}

private void readDisplayStateValues() {
Intent intent = getIntent();
//mNote = intent.getParcelableExtra(NOTE_POSITION);
// mIsNewNote = mNote == null;
int position = intent.getIntExtra(NOTE_POSITION, POSITION_NOT_SET);
mIsNewNote = position == POSITION_NOT_SET;

if (mIsNewNote){
createNewNotes();
}else{
mNote = DataManager.getInstance().getNotes().get(position);
}
}

private void createNewNotes() {
DataManager dm = DataManager.getInstance();
mNotePosition= dm.createNewNote();
mNote = dm.getNotes().get(mNotePosition);
}


@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.menu_main, menu);
return true;
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();

//noinspection SimplifiableIfStatement
if (id == R.id.action_send_mail) {
sendEmail();
return true;
}

return super.onOptionsItemSelected(item);
}

@Override
protected void onPause() {
super.onPause();
saveNote();
}

private void saveNote() {
mNote.setCourse((CourseInfo)mSpinnerCourses.getSelectedItem());
mNote.setTitle(mTextNoteTitle.getText().toString());
mNote.setTitle(mTextNoteText.getText().toString());

}

private void sendEmail() {

CourseInfo course = (CourseInfo) mSpinnerCourses.getSelectedItem();
String subject = mTextNoteTitle.getText().toString();
String text = "Checkout what I learned in the Pluralsight crouse \"" +
course.getTitle() + " \"\n" + mTextNoteText.getText();
Intent intent = new Intent(Intent.ACTION_SEND);
intent.setType("message/rfc2822");
intent.putExtra(Intent.EXTRA_SUBJECT,subject );
intent.putExtra(Intent.EXTRA_TEXT,text );
startActivity(intent);


}
}





留言

這個網誌中的熱門文章

香港袐密行動

要老是忘記, 我更記不起