0

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 中,如果我只添加自定义微调器,它可以正常工作,但如果有任何其他组件,如按钮、textview 等,它会给我一个空指针异常

txt1.setText(s[position]);

为什么会这样?

4

1 回答 1

0

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

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

于 2012-06-24T20:02:22.000 回答