私の目標は、ユーザーが「プロトコル」(EditorActivity)を作成し、ユーザがリストビュー(CatalogActivity)でそれらを見ることができる2つの異なるアクティビティを持つアプリケーションを作成することです)。プロトコルに何らかの問題がある場合、ユーザーはリストビュー内のリストビュー項目の1つを押すことができなければならず、そこからEditorActivityに戻り、特定の項目を編集します。androidのFirebase onClickリスト
私の問題は、CatalogActivityから古いデータをEditorActivityに取得する方法を理解していないことです。
firebaseコンソールから: [Firebase構造] [1]
CustomProtocol:CatalogActivityから
public class CustomProtocol {
public String dateDrill;
public String pileID;
public boolean cleaned;
public CustomProtocol() {
}
public CustomProtocol(String pileID,
String dateDrill,
boolean cleaned) {
this.pileID = pileID;
this.dateDrill = dateDrill;
this.cleaned = cleaned;
}
public void setPileID(String pileID) {
this.pileID = pileID;
}
public String getPileID() {
return pileID;
}
public void setDateDrill(String dateDrill) {
this.dateDrill = dateDrill;
}
public String getDateDrill() {
return dateDrill;
}
}
スニペット:
final String projectNumber = projectPrefs.getString(getString(R.string.settings_project_number_key), getString(R.string.settings_project_number_by_default));
mFirebaseDatabase = FirebaseDatabase.getInstance();
mProtocolDatabaseReference = mFirebaseDatabase.getReference().child(projectNumber);
List<CustomProtocol> protocols = new ArrayList<>();
mProtocolAdapter = new ProtocolAdapter(this, R.layout.item_protocol, protocols);
mProtocolListView.setAdapter(mProtocolAdapter);
attachDatabaseReadListener();
mProtocolListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int position, long id) {
Intent intent = new Intent(CatalogActivity.this, EditorActivity.class);
intent.putExtra("Exiting protocol", EXISTING_PROTOCOL);
}
});
}
EditorActivty:
public void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_editor);
EXISTING_PROTOCOL = intent.getBooleanExtra("Exiting protocol", false);
mEditorFirebaseDatabase = FirebaseDatabase.getInstance();
mEditorProtocolDatabaseReference =
mEditorFirebaseDatabase.getReference().child(projectNumber);
if (EXISTING_PROTOCOL)
mProtocolDatabaseReference.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
//WHAT GOES HERE SO THAT I CAN POPULATE THE TEXTVIEWS IN THE ACTIVITY_EDITOR WITH THE EXISTING VALUES?
}}
そしてこれの後に私は立ち往生しています。私はEditorActivityのdatabasereferenceに何かを追加しなければならないと思いますが、何が分かりませんか?リスト項目がクリックされるまで、私はpileIDを知らないので?これを行う簡単な方法はありますか?
ありがとうございます!
1]:https://i.stack.imgur.com/Bt1mZ.png