自定义微调器空指针异常

时间:2012-06-24 19:53:53

标签: android custom-component

MySpinner.java

以下是我的自定义适配器

public class MyAdapter extends ArrayAdapter<String>
{


public MyAdapter(Context context, int textViewResourceId,String[] objects)
{
    super(context, textViewResourceId, objects);
      // TODO Auto-generated constructor stub
}



public View getDropDownView(int position, View convertView,ViewGroup parent)
{
    return getCustomView(position, convertView, parent);
}


public View getView(int position, View convertView, ViewGroup parent) 
{
    return getCustomView(position, convertView, parent);
}



public View getCustomView(int position, View convertView, ViewGroup parent) 
{
      inflater1=(LayoutInflater)this.getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
      rowlayout=inflater1.inflate(R.layout.spinnerlayout, parent, false);
      txt1=(TextView)rowlayout.findViewById(R.id.textView1);
      txt1.setText(s[position]);                
      txt1.setTextSize(TypedValue.COMPLEX_UNIT_DIP,DropDownTextSize);
      txt1.setHeight(RowSize);
      return rowlayout;
 }

}

我在另一个项目中创建了自定义微调器,我将其标记为库项目。

假设我有一个带有线性布局的main.xml文件。如果我只添加自定义微调器,即使main.xml在同一个项目或其他项目中,它也能正常工作而不会出现任何错误。

但是,如果我将任何其他窗口小部件与自定义微调器一起添加到线性布局中,那么只有当该main.xml不在同一个项目中时,它才会给出空指针异常。

对于同一项目中的main.xml,它可以正常工作。

1)为什么我的自定义微调器在具有不同目标api的项目中的托盘中不可见?

2)在其他项目的main.xml中,如果我只添加自定义微调器,它可以正常工作,但如果有任何其他组件,如button,textview等,它会给我一个空指针异常

txt1.setText(s[position]);

为什么会这样?

1 个答案:

答案 0 :(得分:0)

您将不得不在调试器中查看此内容。 txt1为null表示布局有问题,或者s为null,可能表示适配器尚未初始化。

将代码分成更小的部分。在单步执行该行之前,检查每行在调试器中使用的任何变量。你的问题就会出现。