前提・実現したいこと
初質問なので至らないところがあったらすみません。
Android Studio でrealmを利用したアプリを作っています。
発生している問題・エラーメッセージ
データベースへの登録はできたのですがアダプターを使ってListViewに反映させることができません。
エラーは出ていません。
どなたか回答お願いいたします!
エラーメッセージ
該当のソースコード
MainActivity.java
ソースコード
java
1 2 3 4package com.example.myapplication; 5 6import android.content.Context; 7import android.content.Intent; 8import android.os.Bundle; 9 10import com.google.android.material.floatingactionbutton.FloatingActionButton; 11import com.google.android.material.snackbar.Snackbar; 12 13import androidx.appcompat.app.AppCompatActivity; 14import androidx.appcompat.widget.Toolbar; 15 16import android.view.View; 17import android.view.Menu; 18import android.view.MenuItem; 19import android.widget.ListAdapter; 20import android.widget.ListView; 21import android.widget.Toast; 22 23import io.realm.Realm; 24import io.realm.RealmConfiguration; 25import io.realm.RealmResults; 26 27public class MainActivity extends AppCompatActivity { 28 29 30 ListView mListView; 31 32 @Override 33 protected void onCreate(Bundle savedInstanceState) { 34 super.onCreate(savedInstanceState); 35 setContentView(R.layout.activity_main); 36 Toolbar toolbar = findViewById(R.id.toolbar); 37 setSupportActionBar(toolbar); 38 39 mListView = (ListView) findViewById(R.id.ListView); 40 41 42 43 44 FloatingActionButton fab = findViewById(R.id.fab); 45 fab.setOnClickListener(new View.OnClickListener() { 46 @Override 47 public void onClick(View view) { 48 Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG) 49 .setAction("Action", null).show(); 50 } 51 }); 52 53 Realm.init(getApplicationContext()); 54 Realm realm = Realm.getDefaultInstance(); 55 RealmResults<Task> tasks=realm.where(Task.class).findAll(); 56 TaskAdapter adapter=new TaskAdapter(tasks); 57 mListView.setAdapter(adapter); 58 59 realm.close(); 60 61 findViewById(R.id.fab).setOnClickListener(new View.OnClickListener(){ 62 @Override 63 public void onClick(View v){ 64 startActivity(new Intent(MainActivity.this,TaskEditActivity.class)); 65 66 } 67 }); 68 } 69} 70 71 72 73 74
TaskAdapter.java
java
1 2 3package com.example.myapplication; 4import android.view.LayoutInflater; 5import android.view.View; 6import android.view.ViewGroup; 7import android.widget.ListAdapter; 8import android.widget.TextView; 9 10import java.text.SimpleDateFormat; 11 12import io.realm.OrderedRealmCollection; 13import io.realm.RealmBaseAdapter; 14 15public class TaskAdapter extends RealmBaseAdapter<Task> implements ListAdapter { 16 17 18 private static class ViewHolder{ 19 TextView deadline; 20 TextView title; 21 } 22 23 public TaskAdapter(OrderedRealmCollection<Task> data) { 24 super(data); 25 } 26 27 @Override 28 public View getView(int position, View convertView, ViewGroup parent) { 29 ViewHolder viewholder; 30 if(convertView==null){ 31 convertView=LayoutInflater.from(parent.getContext()).inflate(R.layout.fragment_first,parent,false); 32 viewholder=new ViewHolder(); 33 viewholder.deadline=(TextView)convertView.findViewById(R.id.texts1); 34 viewholder.title=(TextView)convertView.findViewById(R.id.texts2); 35 convertView.setTag(viewholder); 36 }else{ 37 viewholder=(ViewHolder)convertView.getTag(); 38 } 39 Task task = adapterData.get(position); 40 SimpleDateFormat sdf=new SimpleDateFormat("yyyy mm dd"); 41 String formatdate=sdf.format(task.getDeadline()); 42 43 viewholder.deadline.setText(formatdate); 44 viewholder.title.setText(task.getTitle()); 45 return convertView; 46 47 48 49 50 51 52 53 54 } 55 } 56 57
試したこと
ここに問題に対して試したことを記載してください。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
あなたの回答
tips
プレビュー