Ran*_* Ma 3 android listview android-listview
我正在尝试创建一个自定义ListView适配器(大致基于本教程,但示例很简单,我怀疑你需要看看它).
NewsEntriesAdapter.java
public class NewsEntriesAdapter extends BaseAdapter {
private static ArrayList<NewsEntries> newsEntriesArrayList;
private final LayoutInflater mInflater;
public NewsEntriesAdapter(Context context, ArrayList<NewsEntries> entries) {
newsEntriesArrayList = entries;
mInflater = LayoutInflater.from(context);
}
@Override
public int getCount() {
return newsEntriesArrayList.size();
}
@Override
public Object getItem(int position) {
return newsEntriesArrayList.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder;
if (convertView == null) {
convertView = mInflater.inflate(R.layout.assignment_list_row_view,
null);
holder = new ViewHolder();
holder.txtName = (TextView) convertView.findViewById(R.id.name);
holder.txtCityState = (TextView) convertView
.findViewById(R.id.cityState);
holder.txtPhone = (TextView) convertView.findViewById(R.id.phone);
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}
holder.txtName.setText(newsEntriesArrayList.get(position).getName());
holder.txtCityState.setText(newsEntriesArrayList.get(position)
.getCityState());
holder.txtPhone.setText(newsEntriesArrayList.get(position).getPhone());
return convertView;
}
static class ViewHolder {
TextView txtName;
TextView txtCityState;
TextView txtPhone;
}
}
Run Code Online (Sandbox Code Playgroud)
MainActivity.java(onCreate方法)
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
ArrayList<NewsEntries> results = new ArrayList<NewsEntries>();
// I left the NewsEntries class out of this question; it's just a POJO with some get and set methods for Name, CityState, and Phone
NewsEntries sr = new NewsEntries();
sr.setName("Justin Schultz");
sr.setCityState("San Francisco, CA");
sr.setPhone("415-555-1234");
results.add(sr);
final ListView lv = (ListView) findViewById(R.id.list);
System.out.println(results.get(0).getName());
lv.setAdapter(new NewsEntriesAdapter(this, results));
}
Run Code Online (Sandbox Code Playgroud)
但是,lv.setAdapter正上方的行使用空指针异常崩溃应用程序.
有任何想法吗?
K-b*_*llo 13
您没有在自己的内容中设置任何内容Activity.没有setContentView或addContentView打电话给你onCreate.
因此,findViewById将无法找到视图,因为根本没有视图,并且将返回null.
| 归档时间: |
|
| 查看次数: |
9579 次 |
| 最近记录: |