こんにちは私は、ベースアダプタまたはアレイアダプタを拡張するカスタムアダプタを構築しようとしています。しかし両方とも私は同じエラーを受けます。ここに私のログの一部です。BaseAdapterを拡張するCustomAdapterでエラーが発生しました
Error (29111)/AndroidRuntime: Caused by:
android.runtime.JavaProxyThrowable: System.NullReferenceException: Object
reference not set to an instance of an object
Error (29111)/AndroidRuntime: at app2.NoteAdapter.GetView (System.Int32
position, Android.Views.View convertView, Android.Views.ViewGroup parent)
[0x0002e] in <1fa21d766827459f835e8535977f72f9>:0
Error (29111)/AndroidRuntime: at
Android.Widget.BaseAdapter.n_GetView_ILandroid_view_View
_Landroid_view_ViewGroup_ (System.IntPtr jnienv, System.IntPtr native__this,
System.Int32 position, System.IntPtr native_convertView, System.IntPtr
native_parent) [0x00018] in <d855bac285f44dda8a0d8510b679b1e2>:0
Error (29111)/AndroidRuntime: at (wrapper dynamic-method)
System.Object:f5ec6c83-541f-4cff-a749-2883ba3ae9b3
(intptr,intptr,int,intptr,intptr)
Error (29111)/AndroidRuntime: at
md56e50694a3408ec27ef32796f24258eb7.NoteAdapter.n_getView(Native Method)
Error (29111)/AndroidRuntime: at
md56e50694a3408ec27ef32796f24258eb7.NoteAdapter.getView(NoteAdapter.java:56)
Error (29111)/AndroidRuntime: at
android.widget.AbsListView.obtainView(AbsListView.java:2370)
Error (29111)/AndroidRuntime: at
android.widget.ListView.measureHeightOfChildren(ListView.java:1284)
Error (29111)/AndroidRuntime: at
android.widget.ListView.onMeasure(ListView.java:1192)
カスタムアダプタのコードは、以下のいずれかです。
public class NoteAdapter:BaseAdapter<DataModelNotes>
{
// Context _context;
List<DataModelNotes> _notes;
private readonly Activity _activity;
public NoteAdapter(Activity activity, List<DataModelNotes> notes):base()
{
_activity = activity;
_notes = notes;
}
public override int Count
{
get { return _notes.Count; }
}
public override long GetItemId(int position)
{
return position;
}
public override DataModelNotes this[int position]
{
get { return _notes[position]; }
}
public override View GetView(int position, View convertView, ViewGroup parent)
{
DataModelNotes note = this[position];
var view = convertView;
if (view == null)
{
view = _activity.LayoutInflater.Inflate(Resource.Layout.custom_notes_row, null);
}
var title = convertView.FindViewById<TextView>(Resource.Id.noteTitle);
var summary = convertView.FindViewById<TextView>(Resource.Id.noteSummary);
title.Text = note.Title;
summary.Text = note.Summary;
return view;
}
}
}
と私は私のlistfragmentでやっている唯一のものは、以下の本です:
public class NoteListFragment : ListFragment
{
List<DataModelNotes> notes;
public NoteListFragment()
{
}
public override void OnCreate(Bundle savedInstanceState)
{
base.OnCreate(savedInstanceState);
}
public override View OnCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
{
notes = new List<DataModelNotes>();
DataModelNotes note = new DataModelNotes();
note.Id = 0;
note.Title = "adaadassaddsa";
note.Summary = "sdfsfdsfdsdfsds";
notes.Add(note);
NoteAdapter ad = new NoteAdapter(this.Activity as NotesMainActivity, notes);
this.ListAdapter = ad;
return base.OnCreateView(inflater, container, savedInstanceState);
}
カスタムレイアウトは、2つのテキストビューを含む線形レイアウトに過ぎません。私は何が間違っているのか理解できません。私は多くのことを試しましたが、エラーは残ります。誰かが私に助けを与えることができますか?
私はログから詳細を入力しました。それは56行目ですが、56行目は私のNoteAdapterクラスの終わりです – Akis
GetViewメソッドの最初の行にブレークポイントを設定し、行ごとにステップを実行し、ヌルの各変数を評価します。... – SushiHangover