android app.です。
こちらはkotlinで開発しました。
アプリ紹介
苦労した点
車両の物理モデルは別途記事にしたいと思う。
recyclerviewにてalert dialogを加え、リストの編集を可能に
本当はリサイクラービュー内のクラスでなく、リサイクラービューを使うクラスにalert diagramを使いたかったが、この本のやり方だとうまくできなかったので、Bindviewholder内にalert diagramを入れた。
override fun onBindViewHolder(holder: ViewHolder, position: Int) {
//TODO("Not yet implemented")
val vehiclespec_recycle = rResults[position]
holder.dateText?.text = DateFormat.format("yyyy/MM/dd kk:mm", vehiclespec_recycle?.dateTime)
holder.vehiclenameText?.text = vehiclespec_recycle?.vehclename_realm
holder.itemView.setBackgroundColor(if (position % 2 == 0) Color.LTGRAY else Color.WHITE)
holder.itemView.setOnClickListener{
// ダイアログを作成して表示
AlertDialog.Builder(it.context).apply {
//setTitle("Title")
val temp= " date: " + (holder.dateText?.text) as String + ".\n name:" + holder.vehiclenameText?.text
setMessage(temp)
setPositiveButton("to_spec", DialogInterface.OnClickListener { _, _ ->
// OKをタップしたときの処理
val intent = Intent(it.context,input_vehicle_spec::class.java)
intent.putExtra("id",vehiclespec_recycle?.id)
it.context.startActivity(intent)
})
setNegativeButton("delete", DialogInterface.OnClickListener { _, _ ->
// NGをタップしたときの処理
realm = Realm.getDefaultInstance()
realm.executeTransaction {
val bloodPress = realm.where<Vehiclespec>(Vehiclespec::class.java)
.equalTo("id",vehiclespec_recycle?.id )
?.findFirst()
?.deleteFromRealm()
}
realm.close()
//リスト更新
notifyDataSetChanged()
Toast.makeText(it.context, "delete completed", Toast.LENGTH_SHORT).show()
})
show()
}
}
}
mpandroidchartで拡大、縮小、カーソルで値を出す
これは方々色々調べてどうにか実装。拡大、縮小については、特にハードルは高くない。カーソルで値を出すがちょい難しい。
拡大縮小の実装
setPinchZoom(true)
カーソルで値を出す
override fun refreshContent(
e: Entry,
highlight: Highlight?
) {
tvContent.text=e.x.toString()
super.refreshContent(e, highlight);
}
実装
chart_StaticLineGraph2.setDrawMarkerViews(true)
val customMarkerView =
CustomMarkerView(this, R.layout.high_light_value)
chart_StaticLineGraph2.setMarkerView(customMarkerView)
「high_light_value」は別途xmlで作成
realmでデータ管理
realmでデータ管理するときは、リサイクラービューを使った。理由は、realmはデータリストをidで管理しており、通常のリストビューだとidをリストに表示しないと管理できないため。。
まとめ
ここでは、recycler viewとMPandroidchartで躓いた部分を紹介。詳しい説明は他の人のを参考にするとよい。ここに記載したのは他HPを探しても見つけられず、自分で頑張って出来たものです。参考にしてみてください。


