0
私はメモを書くためのアプリを持っています。 EditNote.java
とViewNote.java
の間に問題があります。既存のメモを更新する場合は、更新されたメモを保存するためにFABをクリックすると、表示されるテキストが古いものになります。その後、現在の活動ViewNote.java
を閉じて、私が書いた新しいテキストそれ以前。現在のアクティビティを閉じてそれに戻るまで、テキストは更新されません
* EditNote.java:
package com.twitter.i_droidi.notah;
import android.content.Intent;
import android.os.Bundle;
import android.support.design.widget.FloatingActionButton;
import android.support.design.widget.Snackbar;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.view.View;
import android.widget.EditText;
import android.widget.Toast;
import io.realm.Realm;
import io.realm.RealmResults;
public class EditNote extends AppCompatActivity {
private int id;
private EditText editTitle;
private EditText editBody;
private Realm realm;
private Notes note;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.edit_note);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
Intent intent = getIntent();
id = intent.getIntExtra("id", 0);
editTitle = (EditText) findViewById(R.id.edit_title);
editBody = (EditText) findViewById(R.id.edit_body);
// GET THE SPECIFIED NOTE FORM THE DATABASE.
this.realm = RealmController.with(this).getRealm();
RealmResults<Notes> theNote = realm.where(Notes.class).findAll();
note = theNote.get(id);
editTitle.setText(note.getTitle());
editBody.setText(note.getBody());
FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
fab.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if(editTitle.getText() == null || editTitle.getText().toString().equals("") || editTitle.getText().toString().equals(" "))
Snackbar.make(findViewById(R.id.coordinatorlayout_edit_note), R.string.write_a_valid_note, Snackbar.LENGTH_SHORT).show();
else
{
RealmResults<Notes> results = realm.where(Notes.class).findAll();
realm.beginTransaction();
results.get(id).setTitle(editTitle.getText().toString());
results.get(id).setBody(editBody.getText().toString());
realm.commitTransaction();
Toast.makeText(EditNote.this, R.string.changes_saved, Toast.LENGTH_SHORT).show();
finish();
}
}
});
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
}
}
* ViewNote.java:
package com.twitter.i_droidi.notah;
import android.content.Intent;
import android.os.Bundle;
import android.support.design.widget.FloatingActionButton;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.view.View;
import android.widget.TextView;
import io.realm.Realm;
import io.realm.RealmResults;
public class ViewNote extends AppCompatActivity {
private int id;
private TextView viewTitle;
private TextView viewBody;
private Notes note;
private Realm realm;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.view_note);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
Intent intent = getIntent();
id = intent.getIntExtra("id", 0);
viewTitle = (TextView) findViewById(R.id.view_title);
viewBody = (TextView) findViewById(R.id.view_body);
// GET THE SPECIFIED NOTE FROM THE DATABASE.
this.realm = RealmController.with(this).getRealm();
RealmResults<Notes> theNote = realm.where(Notes.class).findAll();
note = theNote.get(id);
viewTitle.setText(note.getTitle());
viewBody.setText(note.getBody());
FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
fab.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent(ViewNote.this, EditNote.class);
intent.putExtra("id", id);
startActivity(intent);
}
});
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
}
}
どちらかを使用する[startActivityForResult()](http://stackoverflow.com/questions/18243515/android-going-back-t o-previous-activity-with-different-intent-value/18243541#18243541)、またはあなたの質問を 'onResume()'で実行してください。今のところ、あなたは 'ViewNote.java'にノートが変更されたと言っているわけではないので、' onCreate() 'で取得した内容を表示します。 'onResume()'は、最初に作成されたときや、元に戻ったときに実行されます。または、あなたが 'onActivityResult()'にアップデートがあると言う最初の方法 – codeMagic
@Androiderはい私はcodeMagicと同じwrttingでした – Nisarg
@codeMagic私はあなたが投稿したリンクを見て、これも(http://stackoverflow.com/questions/10407159/how-to-manage-start-on-android)を参照してください。私はこの問題に関するいくつかのコードを書いたが、私はまだ同じ問題を抱えている。あなたは私の状況で私を助けるいくつかのコードを書いてください!ありがとう。 – Androider