アダプタが空であっても、他のリスト項目とは異なる後続のリスト項目を常に持つためには、リストビューが必要です。余分なリストアイテムをリストビューに追加するには?
Iアダプタコンストラクタにおけるデータセットの最後にNULL項目を追加しようとしている:GetViewメソッドで
mDataset.add(null);
私が最後の項目と他とを区別し、それに応じて異なるレイアウトを膨張させます。
ユーザーは、私は、データセット内のNULLの項目を削除し、新たなデータをデータセットの終わりを追加し、データセットの最後のインデックスに別のヌル項目を追加する必要があり、新しいリスト項目を追加します。
public void addData(String data) {
mDataset.remove(mDataset.indexOf(null));
mDataset.add(data);
mDataset.add(null);
notifyDataSetChanged();
}
これはもちろんアダプター内で呼び出されます。私のアダプタのgetViewメソッド()メソッドでは、この行にマップ
java.lang.NullPointerException: Attempt to read from field 'android.widget.TextView com.neutronstar.revu.DataAdapter$DataViewHolder.mDataTextView' on a null object reference
:ここ
holder.mDataTextView.setText(mDataset.get(position));
アダプタでgetViewメソッド()メソッドである私は、アプリを実行すると、私は次のエラーを取得します:
@Override
public View getView(int position, View convertView, ViewGroup parent) {
long viewType = getItemId(position);
Log.i("SPECS ADAPTER", viewType + "");
if (getCount() == 0)
convertView = LayoutInflater.from(mContext).inflate(R.layout.item_add_spec, null);
else if (viewType == NOT_LAST_ITEM) {
SpecViewHolder holder;
if (convertView == null) {
convertView = LayoutInflater.from(mContext).inflate(R.layout.item_spec, null);
holder = new SpecViewHolder(convertView);
convertView.setTag(holder);
} else
holder = (SpecViewHolder) convertView.getTag();
holder.mSpecTextView.setText(mSpecs.get(position));
} else {
if (convertView == null)
convertView = LayoutInflater.from(mContext).inflate(R.layout.item_add_spec, null);
}
return convertView;
}
public void addSpec(String spec) {
mSpecs.remove(mSpecs.indexOf(null));
mSpecs.add(spec);
mSpecs.add(null);
notifyDataSetChanged();
}
static class SpecViewHolder {
@BindView(R.id.spec_text_view) TextView mSpecTextView;
SpecViewHolder(View view) {
ButterKnife.bind(this, view);
}
}
このエラーを修正するにはどうすればよいですか?
おかげ
基本的には、**フッター**を追加したい –
余分なリスト項目が必要なので、リストの一部ですが、常にリストビューの一番下に表示されます。 @Rotwang –
ur getView()コード – uguboz