firebaseデータベースからタイムスタンプを取得しようとしていて、それをrecyclerview内のtextviewに表示しようとしています。生成されるタイムスタンプは人間が判読可能な形式ではありません。 {timestamp = {。sv = timestamp}}のように表示されます。Android:人間が読めるタイムスタンプがrecyclerview内で生成されない
GetterおよびSetter:データベースの
private DatabaseReference mDatabase;
HashMap<String,Object> timestampCreated;
public Blog(String title,String desp,HashMap<String,Object>timestampCreated) {
this.title = title;
this.desp=desp;
//this.timestam=ServerValue.TIMESTAMP;
HashMap<String,Object> ts=new HashMap<>();
ts.put("timestamp", ServerValue.TIMESTAMP);
}
public HashMap<String,Object>getTimestampCreated(){
if(timestampCreated!=null)
return timestampCreated;
HashMap<String,Object> timestampCreatedObj=new HashMap<String,Object>();
timestampCreatedObj.put("timestamp",ServerValue.TIMESTAMP);
return timestampCreatedObj;
}
public void setTimestampCreated(HashMap<String,Object> timestamp){
this.timestampCreated=timestamp;
}
@Exclude
public long getTimestampCreatedLong(){
long value=(long)timestampCreated.get("timestamp");
convertTime(value);
return value;
}
public String convertTime(Long unixtime){
Date dateObject=new Date(unixtime);
SimpleDateFormat dateFormat=new SimpleDateFormat("dd-mm-yyyy hh:mm:ss");
return dateFormat.format(dateObject);
}
@Override
protected void onCreate(Bundle SavedInstanceState) {
super.onCreate(SavedInstanceState);
mDatabase = FirebaseDatabase.getInstance().getReference().child("Blog");
mDatabase.keepSynced(true);
ViewHolder:
public void setTimestampCreated(HashMap<String, Object> timestamp) {
TextView show_ts = (TextView) mview.findViewById(blog_timestamp);
show_ts.setText(String.valueOf(timestamp));
}
Adapter:
FirebaseRecyclerAdapter<Blog, BlogViewHolder> firebaseRecyclerAdapter = new FirebaseRecyclerAdapter<Blog, BlogViewHolder>(
Blog.class,
R.layout.blog_row,
BlogViewHolder.class, mDatabase
) {
@Override
protected void populateViewHolder(final BlogViewHolder viewHolder,final Blog model, int position) {
viewHolder.setTimestampCreated(model.getTimestampCreated());
}
};
mbloglist.setAdapter(firebaseRecyclerAdapter);
画像:Androidのパッケージでdatabase image
コードのどこかで呼び出すか、それを定義するだけで十分ですか? –
必要なクラス/アクティビティでこのメソッドを定義することも、別のクラスのヘルパークラスで定義することもできます。データベースから取得する 'Long'値を引数として呼び出すだけで十分です。 –
getTimeDate(value)を使ってgettimestampcreatedlong()の内部で呼びました。まだ問題は残っています。 –