質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

89.99%

複数のTextViewをListViewにまとめたい

受付中

回答 0

投稿

  • 評価
  • クリップ 0
  • VIEW 299

asdfhorse

score 11

家計簿アプリを作成しています。
月別のジャンル支出を一覧表示させたいと考えています。
月別のジャンル支出の値を取ってきて、TextViewに表示させることはできているのですが、それをListViewでまとめて表示させたいと考えています。
どなたかご教授お願いします。

package com.example.tamayamaryo.recipebook_sotuken

class MainActivity: FragmentActivity(), DatePick.Callback {
    private lateinit var realm: Realm


    private fun initRealm() {
        val realmConfiguration = RealmConfiguration.Builder()
            .deleteRealmIfMigrationNeeded()
            .schemaVersion(0)
            .build()
        realm = Realm.getInstance(realmConfiguration)

    }

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        val config = RealmConfiguration.Builder().deleteRealmIfMigrationNeeded().build()

        Realm.setDefaultConfiguration(config)

        realm = Realm.getDefaultInstance()



        val kakeibo_navi: BottomNavigationItemView = findViewById(R.id.navigation_kakeibo)
        val resito_navi: BottomNavigationItemView = findViewById(R.id.navigation_resito)
        val buylist_navi: BottomNavigationItemView = findViewById(R.id.navigation_buylist)
        val recipe_navi: BottomNavigationItemView = findViewById(R.id.navigation_analysis)
        kakeibo_navi.setOnClickListener {
            val intent = Intent(this, kakeiboActivity::class.java)
            startActivity(intent)
        }
        buylist_navi.setOnClickListener {
            val intent = Intent(this, buylistActivity::class.java)
            startActivity(intent)
        }
        resito_navi.setOnClickListener {
            val intent = Intent(this, resitoActivity::class.java)

            startActivity(intent)
        }
        recipe_navi.setOnClickListener {
            val intent = Intent(this, MainActivity::class.java)
            startActivity(intent)
        }

    }
    override fun onDestroy() {
        super.onDestroy()
        realm.close()
    }
    override fun onDatePicked(year: Int,monthOfYear: Int, dayOfMonth: Int)  {
        val str = String.format(Locale.US, "%d/%d", year, monthOfYear+1 , dayOfMonth)
        datesort.text = str

        var kakeiboOfMonth = realm.where<Kakeibo>()
            .beginsWith("date", "${year}/${monthOfYear+1}/")
            .findAll()
        kakeiboOfMonth = kakeiboOfMonth.sort("date")

        var sumSyunyu = kakeiboOfMonth.where().equalTo("shushi", "収入").findAll().sum("money").toString()
        var sumSisyutsu = kakeiboOfMonth.where().equalTo("shushi", "支出").findAll().sum("money").toString()
        sumsShunyu.text = sumSyunyu
        sumsiSishutu.text = sumSisyutsu
        var shushi : Int = Integer.parseInt(sumSyunyu) - Integer.parseInt(sumSisyutsu)
        shuushi.text = shushi.toString()

        //ジャンルごとの支出
        var dayvalue = kakeiboOfMonth.where()
            .equalTo("genre", "日用品")
            .findAll().sum("money").toString()
        dayv.text = dayvalue

        var foodvalue = kakeiboOfMonth.where()
            .equalTo("genre", "食費")
            .findAll().sum("money").toString()
        foodv.text = foodvalue

//        var elecvalue = kakeiboOfMonth.where()
//            .equalTo("genre", "水道光熱費")
//            .findAll().sum("money").toString()
//        electricalv.text = elecvalue
//        var healthvalue = kakeiboOfMonth.where()
//            .equalTo("genre", "医療費")
//            .findAll().sum("money").toString()
//        healthv.text = healthvalue
//
//        var beatyvalue = kakeiboOfMonth.where()
//            .equalTo("genre", "美容・衣服")
//            .findAll().sum("money").toString()
//        beautyv.text = beatyvalue
//
//        var mobilevalue = kakeiboOfMonth.where()
//            .equalTo("genre", "通信料")
//            .findAll().sum("money").toString()
//        mobilev.text = mobilevalue
//
//        var detvalue = kakeiboOfMonth.where()
//            .equalTo("genre", "交際費")
//            .findAll().sum("money").toString()
//        detv.text = detvalue
//
//        var drivevalue = kakeiboOfMonth.where()
//            .equalTo("genre", "交通費")
//            .findAll().sum("money").toString()
//        drivev.text = drivevalue
//
//        var housevalue = kakeiboOfMonth.where()
//            .equalTo("genre", "住まい")
//            .findAll().sum("money").toString()
//        housev.text = housevalue
//
//        var hobbyvalue = kakeiboOfMonth.where()
//            .equalTo("genre", "娯楽")
//            .findAll().sum("money").toString()
//        hobbyv.text = hobbyvalue
//
//        var othervalue = kakeiboOfMonth.where()
//            .equalTo("genre", "その他")
//            .findAll().sum("money").toString()
//        otherv.text = othervalue


    }

    override fun onAttachFragment(fragment : Fragment)  {
        if(fragment is DatePick)   {
            fragment.callback = this
        }
    }
    fun showDatePickerDialog(v: View) {
        val newFragment = DatePick()
        newFragment.show(supportFragmentManager, "datePicker")
    }

}
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        xmlns:tools="http://schemas.android.com/tools"
        android:id="@+id/container"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        tools:context=".MainActivity">
    <TextView
            android:id="@+id/analysis"
            android:text="@string/analysis"
            android:textSize="25dp"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            app:layout_constraintLeft_toLeftOf="parent"
            app:layout_constraintTop_toTopOf="parent"
            android:layout_marginLeft="268dp" android:layout_marginTop="16dp"/>
    <TextView
            android:id="@+id/datesort"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginLeft="112dp"
            android:text="@string/title_nengetu"
            android:textSize="25dp"
            android:onClick="showDatePickerDialog"
            app:layout_constraintLeft_toLeftOf="parent"
            app:layout_constraintTop_toTopOf="parent"
    />
    <TextView
            android:id="@+id/shunyuuText"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/shunyuu"
            android:textSize="20dp"
            app:layout_constraintLeft_toLeftOf="parent"
            app:layout_constraintTop_toTopOf="parent" android:layout_marginTop="360dp"
            android:layout_marginLeft="16dp"/>
    <TextView
            android:id="@+id/sishutuText"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/sishutu"
            android:textSize="20dp"
            app:layout_constraintLeft_toLeftOf="parent"
            app:layout_constraintTop_toTopOf="parent" android:layout_marginTop="400dp"
            android:layout_marginLeft="16dp"/>
    <TextView
            android:id="@+id/shushiText"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/shushi"
            android:textSize="20dp"
            app:layout_constraintLeft_toLeftOf="parent"
            app:layout_constraintTop_toTopOf="parent" android:layout_marginTop="388dp"
            android:layout_marginLeft="184dp"/>
    <TextView
            android:id="@+id/sumsShunyu"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginLeft="88dp"
            android:textSize="25dp"
            android:textColor="@color/blue"
            android:hint="表示"
            app:layout_constraintLeft_toLeftOf="parent"
            app:layout_constraintTop_toTopOf="parent"
            android:layout_marginTop="352dp"/>
    <TextView
            android:id="@+id/sumsiSishutu"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginLeft="88dp"
            android:textSize="25dp"
            android:textColor="@color/red"
            android:hint="表示"
            app:layout_constraintLeft_toLeftOf="parent"
            app:layout_constraintTop_toTopOf="parent"
            android:layout_marginTop="400dp"/>
    <TextView
            android:id="@+id/shuushi"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textSize="25dp"
            android:hint="表示"
            app:layout_constraintLeft_toLeftOf="parent"
            app:layout_constraintTop_toTopOf="parent"
            android:layout_marginTop="380dp" android:layout_marginLeft="276dp"/>
    <android.support.design.widget.BottomNavigationView
            android:id="@+id/navigation"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_marginEnd="0dp"
            android:layout_marginStart="0dp"
            android:background="?android:attr/windowBackground"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintLeft_toLeftOf="parent"
            app:layout_constraintRight_toRightOf="parent"
            app:menu="@menu/navigation"/>

</android.support.constraint.ConstraintLayout>
  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

まだ回答がついていません

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 89.99%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

同じタグがついた質問を見る