ArrayList
으로 채워진 Spinner
을 만들었습니다. ArrayList
에 동적으로 값을 추가하려고하므로 Spinner
이 동적으로 채워집니다. 그러나 ArrayList
에 값을 추가하려고 시도하면 NullPointerException
이 표시됩니다.어떻게 ArrayList를 사용하여 스피너를 동적으로 업데이트합니까?
무엇이 누락 되었습니까? ArrayList
을 수정하기 전에 어댑터를 재설정해야합니까? 여기
내 회, ArrayList를, 그리고 어댑터 :
deleteselection = (Spinner)view.findViewById(R.id.deletespinner);
portfoliosdelete = new ArrayList<String>();
portfoliosdelete.add("Select Portfolio");
adapterdeletetype = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item,portfoliosdelete){
@Override
public View getDropDownView(int position, View convertView, ViewGroup parent)
{
View v = null;
// If this is the initial dummy entry, make it hidden
if (position == 0) {
TextView tv = new TextView(getContext());
tv.setHeight(0);
tv.setVisibility(View.GONE);
v = tv;
}
else {
// Pass convertView as null to prevent reuse of special case views
v = super.getDropDownView(position, null, parent);
}
// Hide scroll bar because it appears sometimes unnecessarily, this does not prevent scrolling
parent.setVerticalScrollBarEnabled(false);
return v;
}
};
adapterdeletetype.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
deleteselection.setAdapter(adapterdeletetype);
동적 회 업데이트 내 코드 :
else if(users.contains(usernull)){
pn1 = enterportfolioname.getText().toString();
user1 = new PortfolioRecord(pn1, "[email protected]");
users.remove(usernull);
users.add(user1);
portfoliosdelete.add(pn1); // <-- This causes a null pointer exception
adapterdeletetype.notifyDataSetChanged();
portfoliolist.invalidateViews();
곳이 추가 점은 어디에 있습니까? 이 시점에서 portfoliosdelete가 설치되었는지 확실합니까? – njzk2