Layoutにtextviewを追加するところがうまくいきません。
データベースにはデータがちゃんと入っていますが、画面に出てきません。
昨日まではできてましたが、、
回答お願いいたします。
@Override public void onDataChange(DataSnapshot dataSnapshot) { for (DataSnapshot snapshot : dataSnapshot.getChildren()) { Message message = snapshot.getValue(Message.class); TextView textView = new TextView(getApplicationContext()); textView.setText(message.data.toString() + message.message.toString()); textLayout.addView(textView, new LinearLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT,ViewGroup.LayoutParams.WRAP_CONTENT)); } }
package sampleapplication; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.view.View; import android.view.ViewGroup; import android.widget.Button; import android.widget.EditText; import android.widget.LinearLayout; import android.widget.TextView; import com.google.firebase.database.DataSnapshot; import com.google.firebase.database.DatabaseError; import com.google.firebase.database.DatabaseReference; import com.google.firebase.database.FirebaseDatabase; import com.google.firebase.database.Query; import com.google.firebase.database.ValueEventListener; import java.util.Calendar; import java.util.HashMap; import java.util.Map; public class MainActivity extends AppCompatActivity implements View.OnClickListener { private FirebaseDatabase database = FirebaseDatabase.getInstance(); private LinearLayout textLayout; private EditText edit; private Button button; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); textLayout = findViewById(R.id.textLayout); edit = findViewById(R.id.edit); button = findViewById(R.id.button); findViewById(R.id.button).setOnClickListener(this); setup(); } private void setup(){ DatabaseReference reference = database.getReference("messages"); ValueEventListener eventListener = (new ValueEventListener() { @Override public void onDataChange(DataSnapshot dataSnapshot) { for (DataSnapshot snapshot : dataSnapshot.getChildren()) { Message message = snapshot.getValue(Message.class); TextView textView = new TextView(getApplicationContext()); textView.setText(message.data.toString() + message.message.toString()); textLayout.addView(textView, new LinearLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT,ViewGroup.LayoutParams.WRAP_CONTENT)); } } @Override public void onCancelled(DatabaseError databaseError) { } }); } private void add(String msg, String date){ Message message = new Message(); message.message = msg; message.data = date; DatabaseReference reference = database.getReference("messages" + "/" + date); reference.setValue(message); } private String getTime() { CharSequence charSequence = android.text.format.DateFormat.format("HH:mm", Calendar.getInstance()); return charSequence.toString(); } private String getDate() { CharSequence charSequence = android.text.format.DateFormat.format("yyyy-MM-dd", Calendar.getInstance()); return charSequence.toString(); } @Override public void onClick(View view){ int id = view.getId(); if (R.id.button == id){ String str = edit.getText().toString(); add(str, getTime()); edit.getEditableText().clear(); } }
<?xml version="1.0" encoding="utf-8"?> <LinearLayout 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:layout_width="match_parent" android:layout_height="match_parent" tools:context="sample.MainActivity" android:orientation="vertical" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin"> <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/textLayout"> </LinearLayout> <EditText android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/edit"/> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/button"/> </LinearLayout>
public class Message { public String message; public String data; public String getData(){ return data; } public void setData(String data) { this.data = data; } public String getMessage(){ return message; } public void setMessage(String message) { this.message = message; } }
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/04/07 17:34
退会済みユーザー
2018/04/08 00:37
2018/04/08 02:58
2018/04/08 03:10
退会済みユーザー
2018/04/08 05:37