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

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

新規登録して質問してみよう
ただいま回答率
85.48%
Firebase

Firebaseは、Googleが提供するBasSサービスの一つ。リアルタイム通知可能、並びにアクセス制御ができるオブジェクトデータベース機能を備えます。さらに認証機能、アプリケーションのログ解析機能などの利用も可能です。

Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

Android Studio

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

Q&A

0回答

1511閲覧

画面にリストが表示されない(Android Studio, Firebase 使用)

wattflex

総合スコア5

Firebase

Firebaseは、Googleが提供するBasSサービスの一つ。リアルタイム通知可能、並びにアクセス制御ができるオブジェクトデータベース機能を備えます。さらに認証機能、アプリケーションのログ解析機能などの利用も可能です。

Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

Android Studio

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

0グッド

0クリップ

投稿2019/10/05 12:10

編集2019/10/05 12:15

現在、Android Studio、Firebase Real Time Databaseを使用してアプリケーション開発を行っています。

以下のようにリストを画面に表示させたいのですが、データが読み取れていないのか表示できない状態となっています。

理想の画面
イメージ説明

現状の画面
イメージ説明

何が原因なのかお分かりの方、ご教授頂けますでしょうか。
以下、関連部分のコードになります。

activity_tests.xml

XML

1<?xml version="1.0" encoding="utf-8"?> 2<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 3 xmlns:app="http://schemas.android.com/apk/res-auto" 4 xmlns:tools="http://schemas.android.com/tools" 5 android:layout_width="match_parent" 6 android:layout_height="match_parent" 7 8 tools:context=".Tests"> 9 10 11 <com.google.android.material.appbar.AppBarLayout 12 android:layout_width="match_parent" 13 android:layout_height="wrap_content" 14 android:theme="@style/AppTheme.AppBarOverlay"> 15 16 <androidx.appcompat.widget.Toolbar 17 android:id="@+id/toolbar" 18 android:layout_width="match_parent" 19 android:layout_height="?android:attr/actionBarSize" 20 android:background="?android:attr/colorPrimary" 21 app:popupTheme="@style/AppTheme.PopupOverlay" /> 22 23 </com.google.android.material.appbar.AppBarLayout> 24 25 <include layout="@layout/content_tests" /> 26 27 28 29</RelativeLayout>

content_tests.xml

XML

1<?xml version="1.0" encoding="utf-8"?> 2<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" 3 android:layout_width="match_parent" 4 android:layout_height="match_parent" 5 android:layout_marginTop="?android:attr/actionBarSize" 6 > 7 8 <ListView 9 android:layout_width="match_parent" 10 android:layout_height="match_parent" 11 android:id="@+id/test_listview"> 12 13 </ListView> 14 <ProgressBar 15 android:id="@+id/progressBar" 16 android:layout_width="30dp" 17 android:layout_height="30dp" 18 android:layout_gravity="center|bottom" 19 android:layout_marginBottom="20dp" 20 android:visibility="gone" /> 21</FrameLayout>

test_item.xml

XML

1<?xml version="1.0" encoding="utf-8"?> 2<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 3 android:layout_width="match_parent" android:layout_height="wrap_content" 4 android:layout_marginStart="@dimen/activity_horizontal_margin" 5 android:layout_marginBottom="@dimen/activity_horizontal_margin"> 6 7 <TextView 8 android:id="@+id/item_textView" 9 android:layout_width="wrap_content" 10 android:layout_height="?android:actionBarSize" 11 android:layout_alignParentTop="true" 12 android:layout_toEndOf="@+id/item_imageView" 13 android:gravity="center_vertical|center_horizontal"/> 14 15 <ImageView 16 android:id="@+id/item_imageView" 17 android:layout_width="?android:actionBarSize" 18 android:layout_height="?android:actionBarSize" /> 19 <Button 20 android:layout_margin="5dp" 21 android:layout_width="wrap_content" 22 android:layout_height="wrap_content" 23 android:gravity="center" 24 android:id="@+id/item_button" 25 android:background="@color/colorPrimaryDark" 26 android:layout_alignParentEnd="true"/> 27 28</RelativeLayout>

ResultsAdmin.java

Java

1package com.anondev.gaurav.geval; 2 3import android.content.Context; 4import android.content.Intent; 5import androidx.annotation.NonNull; 6import androidx.annotation.Nullable; 7import androidx.core.content.ContextCompat; 8import androidx.appcompat.app.AppCompatActivity; 9import android.os.Bundle; 10import androidx.appcompat.widget.Toolbar; 11import android.util.Log; 12import android.view.LayoutInflater; 13import android.view.View; 14import android.view.ViewGroup; 15import android.widget.ArrayAdapter; 16import android.widget.Button; 17import android.widget.ImageView; 18import android.widget.ListView; 19import android.widget.ProgressBar; 20import android.widget.TextView; 21 22import com.google.firebase.auth.FirebaseAuth; 23import com.google.firebase.database.DataSnapshot; 24import com.google.firebase.database.DatabaseError; 25import com.google.firebase.database.DatabaseReference; 26import com.google.firebase.database.FirebaseDatabase; 27import com.google.firebase.database.ValueEventListener; 28 29import java.util.ArrayList; 30 31public class ResultsAdmin extends AppCompatActivity { 32 33 private FirebaseDatabase database; 34 private FirebaseAuth auth; 35 private DatabaseReference myRef; 36 private ProgressBar progressBar; 37 private ListView listView; 38 private ResultsAdmin.TestAdapter testAdapter; 39 ArrayList<String> result=new ArrayList<>(); 40 41 @Override 42 protected void onCreate(Bundle savedInstanceState) { 43 auth=FirebaseAuth.getInstance(); 44 super.onCreate(savedInstanceState); 45 setContentView(R.layout.activity_tests); 46 Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); 47 setSupportActionBar(toolbar); 48 progressBar = (ProgressBar) findViewById(R.id.progressBar); 49 progressBar.setVisibility(View.VISIBLE); 50 database=FirebaseDatabase.getInstance(); 51 myRef=database.getReference(); 52 listView=findViewById(R.id.test_listview); 53 testAdapter=new ResultsAdmin.TestAdapter(ResultsAdmin.this,result); 54 listView.setAdapter(testAdapter); 55 getResults(); 56 } 57 58 public void getResults(){ 59 60 myRef.child("Results").addListenerForSingleValueEvent(new ValueEventListener() { 61 @Override 62 public void onDataChange(@NonNull DataSnapshot dataSnapshot) { 63 result.clear(); 64 for(DataSnapshot snapshot:dataSnapshot.getChildren()){ 65 result.add(snapshot.getKey()); //keyを取得している。Verbal~のこと。 66 } 67 testAdapter.dataList=result; 68 testAdapter.notifyDataSetChanged(); 69 progressBar.setVisibility(View.GONE); 70 Log.e("The read success: " ,"su"+result.size()); 71 } 72 73 @Override 74 public void onCancelled(@NonNull DatabaseError databaseError) { 75 progressBar.setVisibility(View.GONE); 76 Log.e("The read failed: " ,databaseError.getMessage()); 77 } 78 }); 79 } 80 class TestAdapter extends ArrayAdapter<String> { 81 private Context mContext; 82 ArrayList<String> dataList; 83 public TestAdapter( Context context,ArrayList<String> list) { 84 super(context, 0 , list); 85 mContext = context; 86 dataList = list; 87 } 88 89 @NonNull 90 @Override 91 public View getView(final int position, @Nullable View convertView, @NonNull ViewGroup parent) { 92 View listItem = convertView; 93 if(listItem == null) 94 listItem = LayoutInflater.from(mContext).inflate(R.layout.test_item,parent,false); 95 ((ImageView)listItem.findViewById(R.id.item_imageView)).setImageDrawable(ContextCompat.getDrawable(mContext,R.drawable.ic_assessment_black_24dp)); 96 ((TextView)listItem.findViewById(R.id.item_textView)).setText(dataList.get(position)); 97 ((Button)listItem.findViewById(R.id.item_button)).setText("View"); 98 ((Button)listItem.findViewById(R.id.item_button)).setOnClickListener(new View.OnClickListener() { 99 @Override 100 public void onClick(View view) { 101 Intent intent=new Intent(ResultsAdmin.this,ResultsAdminDetailed.class); 102 intent.putExtra("test",dataList.get(position)); 103 startActivity(intent); 104 } 105 }); 106 return listItem; 107 } 108 } 109 110}

Firebase Real Time Databaseのデータ構造

イメージ説明

気になる質問をクリップする

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2019/10/05 12:38

> データが読み取れていないのか ってことは未確認ということでよろしいでしょうか。
wattflex

2019/10/05 13:38

デバッグをして確認したところ、 ResultsAdmin.javaのLog.e("The read success: " ,"su"+result.size());において result.size()の値が0となっていることがわかりました。 データの読み込みは行われているが、中身が空っぽという状態になります。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問