我遇到了簡單的自定義列表問題。我已經嘗試了幾個例子,最終得到相同的錯誤。我不斷收到的錯誤是java.lang.NullPointerException:嘗試從空數組中讀取
顯示java.lang.NullPointerException:嘗試從空陣列讀取
適配器類別:
public class CustomList extends ArrayAdapter<String> {
Context context;
int [] images;
String [] titleArray;
String [] descriptionArray;
CustomList(Context context,String[] titles, int [] images, String [] description) {
super(context,R.layout.single_row,R.id.textView,titles);
this.context = context;
this.images = images;
this.descriptionArray = description;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View row = inflater.inflate(R.layout.single_row,parent, false);
ImageView img = (ImageView) row.findViewById(R.id.imageView);
TextView myTxtTitle = (TextView) row.findViewById(R.id.textView);
TextView myTxtDescription = (TextView) row.findViewById(R.id.textView2);
img.setImageResource(images[position]);
myTxtTitle.setText(titleArray[position]); // where error is happening?
myTxtDescription.setText(descriptionArray[position]);
return row;
}}
Activity類:
public class MainActivity extends AppCompatActivity {
ListView list;
String [] name;
String [] sound;
int [] images = {
R.drawable.bird,
R.drawable.cat,
R.drawable.cow,
R.drawable.dog,
R.drawable.frog
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Resources res = getResources();
name = res.getStringArray(R.array.title);
sound = res.getStringArray(R.array.description);
list = (ListView) findViewById(R.id.list);
CustomList customAdapter = new CustomList(this, name, images, sound);
list.setAdapter(customAdapter);
}
}
感謝您的反饋幫助很多 –
歡迎您:) –