如何创建一个listview用于在android中显示数据?

时间:2012-01-04 09:07:52

标签: android

我正在进行测验申请。测试结束后,在我的项目中,我需要保留审核按钮点击查看按钮时,所有出现的测试问题都必须再次显示,正确答案为一种颜色,错误答案一种颜色,超时回答其他颜色。所以我保留了所有问题,答案和选中在arraylist中回答。 现在在审核页面中,我需要在列表视图中显示问题,选项和说明。因此,我创建了一个列表视图。但它显示空指针异常。

mycode的:

public class testreview扩展了Activity {

private ListView listViewScore = null;
private ListViewAdapter listViewAdapter = null;
public static ArrayList<ArrayList<String>> ourstringList1 = Select.stringList1;
    private ArrayList<ArrayList<String>> usernameArrLst = ourstringList1;
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.list);
    listViewScore=(ListView)findViewById(R.id.list);
    usernameArrLst = new ArrayList<ArrayList<String>>();
    listViewAdapter = new ListViewAdapter();
    listViewScore.setAdapter(listViewAdapter);
}

class ListViewAdapter extends BaseAdapter{

    @Override
    public int getCount() {
        // TODO Auto-generated method stub
        if(usernameArrLst==null){
            return 0;
        }

        return usernameArrLst.size();
    }

    @Override
    public Object getItem(int position) {
        // TODO Auto-generated method stub
        return usernameArrLst.get(position);
    }

    @Override
    public long getItemId(int position) {
        // TODO Auto-generated method stub
        return position;
    }

    @Override
    public View getView(int position, View view, ViewGroup parent) {
        // TODO Auto-generated method stub
        View rowView=view;
        if(rowView==null){
            LayoutInflater layoutinflate =LayoutInflater.from(testreview.this);
            rowView=layoutinflate.inflate(R.layout.listrow, parent, false);
        }

        TextView textViewName=(TextView)rowView.findViewById(R.id.tv_case);
        textViewName.setText((CharSequence) usernameArrLst.get(position));

        return rowView;
    }

}

}

1 个答案:

答案 0 :(得分:1)

在通过.size()方法提供给列表适配器之前检查数组大小,并尝试在日志上打印它。我认为不确定,Select是你的另一个类,其值存储在StringList1 ArrayList()中,然后尝试打印。