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

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

ただいまの
回答率

90.46%

  • Java

    16235questions

    Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

  • Android Studio

    4375questions

    Android Studioは、 Google社によって開発された、 Androidのネイティブアプリケーション開発に特化した統合開発ツールです。

  • Realm

    264questions

    RealmとはSQLiteやCore Dataに代わるモバイルデータベースです。iOSとAndroidの両方でサポートされています。

Realmの表示方法を変えたい

解決済

回答 1

投稿 編集

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

maikel

score 29

Realmを使ってデータベースから取得したのですが、表示のされ方が周りのものと違います。文字列をそのまま取り出せないでしょうか。

同じプログラムで私だけが、どうも数式みたいなのが表示されます。何らかの設定のミスかなと疑っている次第なのですが。

文字列が数式みたいになっていることに注目

全てのページのプログラムを載せるとなると、多すぎて見づらくなりそうなので、それ以外に必要なページ、プログラム等があれば載せますので教えて欲しいです。要望があり追加しました。

画像のページのプログラムです。

package com.websarva.wings.amdrpod.udemyandroid11_1;

import android.content.res.ColorStateList;
import android.graphics.Bitmap;
import android.graphics.Color;
import android.graphics.drawable.BitmapDrawable;
import android.os.Bundle;
import android.support.design.widget.CollapsingToolbarLayout;
import android.support.design.widget.FloatingActionButton;
import android.support.design.widget.Snackbar;
import android.support.v4.widget.NestedScrollView;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.graphics.Palette;
import android.support.v7.widget.Toolbar;
import android.view.View;
import android.widget.ImageView;
import android.widget.TextView;

import java.text.SimpleDateFormat;

import io.realm.Realm;

public class ShowActivity extends AppCompatActivity {
    private Realm mRealm;
    private int[] images={R.drawable.image0,R.drawable.image1,R.drawable.image2};

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_show);
        Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
        setSupportActionBar(toolbar);

        FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
        fab.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG)
                        .setAction("Action", null).show();
            }
        });

        mRealm = Realm.getDefaultInstance();
        ImageView toolbarImage=(ImageView)findViewById(R.id.toolbarImage);
        TextView date = (TextView)findViewById(R.id.date);
        TextView detail = (TextView)findViewById(R.id.detail);
        CollapsingToolbarLayout layout =(CollapsingToolbarLayout)findViewById(R.id.toolbar_layout);

        //ScroollView呼び出し
        NestedScrollView scrollView = (NestedScrollView) findViewById(R.id.scrollView); //重大なエラーあり
        // content_showのスクロールビューと同じにする。同じようなR値が沢山あった為エラーにつながった。


        if(getIntent() != null){
            long mid = getIntent().getLongExtra("id",-1);
            Schedule sc = mRealm.where(Schedule.class).equalTo("id",mid).findFirst();

            SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd");
            String format =sdf.format(sc.date);
            date.setText(format);
            layout.setTitle(sc.title);
            detail.setText(sc.detail);
            toolbarImage.setImageResource(images[(int)mid %3]);


            //Bitmap取得
            Bitmap bitmap =((BitmapDrawable)toolbarImage.getDrawable()).getBitmap(); 
            Palette palette = Palette.from(bitmap).generate();

            //パレットから色を取得する
            int titleColor = palette.getLightVibrantColor(Color.WHITE);
            int bodyColor = palette.getDarkMutedColor(Color.BLACK);
            int scrimColor = palette.getMutedColor(Color.DKGRAY);
            int iconColor =palette.getVibrantColor(Color.LTGRAY);

            layout.setExpandedTitleColor(titleColor); //eee
            layout.setContentScrimColor(scrimColor);  //画像背景
            scrollView.setBackgroundColor(bodyColor); //本文背景
            detail.setTextColor(titleColor);          //本文文字
            fab.setBackgroundTintList(ColorStateList.valueOf(iconColor)); //Floatingbuttonのtintカラー
}}
@Override
protected void onDestroy() {
super.onDestroy();
mRealm.close();
}
}

ListViewが表示されるMainのプログラム

package com.websarva.wings.amdrpod.udemyandroid11_1;

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.view.View;
import android.widget.AdapterView;
import android.widget.Button;
import android.widget.ListView;

import java.util.Date;

import io.realm.Realm;
import io.realm.RealmResults;

public class MainActivity extends AppCompatActivity {
    private Realm mrealm;
    private ListView list;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        mrealm = Realm.getDefaultInstance();
        list = (ListView) findViewById(R.id.list);
        RealmResults<Schedule> schedules = mrealm.where(Schedule.class).findAll();
        ScheduleAdapter adapter = new ScheduleAdapter(schedules);

        list.setAdapter(adapter);

        Button dbTest = (Button) findViewById(R.id.dbtestbutton);
        dbTest.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent = new Intent(MainActivity.this, RealmTestActivity.class);
                startActivity(intent);
            }
        });
        FloatingActionButton add = (FloatingActionButton) findViewById(R.id.add);
        add.setOnClickListener(new View.OnClickListener() {
            //app:srcComatにエラーがついているが問題なく動くためスルー
            @Override
            public void onClick(View v) {
                final long[] newId = new long[1];
                mrealm.executeTransaction(new Realm.Transaction() {
                    @Override
                    public void execute(Realm realm) {
                        Number num = realm.where(Schedule.class).max("id");
                        newId[0] = 0;
                        if (num != null) {
                            newId[0] = num.longValue() + 1;
                        }
                        Schedule sc = realm.createObject(Schedule.class, newId[0]);
                        sc.date = new Date();
                        sc.title = "";
                        sc.detail = "";
                    }
                });
                Intent i = new Intent(MainActivity.this, inputActivity.class);
                i.putExtra("id", newId[0]);
                startActivity(i);
            }
        });
        list.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long l) {
                ScheduleAdapter adapter = (ScheduleAdapter) list.getAdapter();
                Schedule sc = adapter.getItem(position);
                Intent i = new Intent(MainActivity.this, ShowActivity.class);
                i.putExtra("id", sc.id);
                //でかいミス発生!そしててこずった!putExtraのnameはgetExtraと揃えること。大文字小文字まできっちりと。
                startActivity(i);
            }
        });
        list.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
            @Override
            public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) {
                ScheduleAdapter adapter = (ScheduleAdapter) list.getAdapter();
                final Schedule sc = adapter.getItem(position);//データベースからposition取得。select文の代わりになる
                mrealm.executeTransaction(new Realm.Transaction() {
                    @Override
                    public void execute(Realm realm) {
                        sc.deleteFromRealm();
                    }
                });
Snackbar.make(view,"削除しました",Snackbar.LENGTH_LONG)
.setAction("OK", new View.OnClickListener() { //スナックバーはアクションを追加できる
@Override
public void onClick(View v) {
Snackbar.make(v,"OKが押された時の処理",Snackbar.LENGTH_SHORT).show();
}})
.show();
return true;
}});}

@Override
protected void onDestroy() {
super.onDestroy();
mrealm.close();}}
  • 気になる質問をクリップする

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

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

    クリップを取り消します

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

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

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

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

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

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

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

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

    質問の評価を下げる

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

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

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

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

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

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

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

    詳細な説明はこちら

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

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

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

質問への追記・修正、ベストアンサー選択の依頼

  • maikel

    2019/02/03 03:06

    データベースです
    package com.websarva.wings.amdrpod.udemyandroid11_1;

    import java.util.Date;

    import io.realm.RealmObject;
    import io.realm.annotations.PrimaryKey;

    public class Schedule extends RealmObject {
    @PrimaryKey
    public long id;
    public Date date;
    public String title;
    public String detail;
    }

    キャンセル

  • maikel

    2019/02/03 03:07

    字数制限があるみたくここに追記しました。かかわりのあるプログラムはこのぐらいかなと思います

    キャンセル

  • wwbQzhMkhhgEmhU

    2019/02/03 09:12

    こちらはシンタックスハイライトもなく、インデントもできないので、質問領域に追加してください。
    別にgithubやそれに似た場所に入れておいて、そこへのリンクでも構いません。

    ただ、私が最初に書いたコメント内容では何が足りなかったのでしょうか?
    今現在の疑問点を明快にしてください。

    キャンセル

回答 1

check解決した方法

0

データベースに入力する際(inputActivity)、afterTextChanged(Editable s)で、書かれた文字をデータベースに登録するようにしていました。そこでEditableの変数sと違う変数を使っていたためのエラーでした。
メソッドは、バージョンによって、デフォルトで生成されてる変数名が変わってくるのですね。おかげで、原本と照らし合わせても気づきませんでした。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

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

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

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

  • Java

    16235questions

    Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

  • Android Studio

    4375questions

    Android Studioは、 Google社によって開発された、 Androidのネイティブアプリケーション開発に特化した統合開発ツールです。

  • Realm

    264questions

    RealmとはSQLiteやCore Dataに代わるモバイルデータベースです。iOSとAndroidの両方でサポートされています。