2012-06-24 4 views
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]); 

Почему это происходит?

+0

Что такое '' '? Его декларация и определение не указаны в коде, который вы указали. – Eric

+0

s - это строковый массив для заполнения счетчика – Flake

+0

Да, но здесь 'txt1' или' s' здесь null. Проверьте файл 'spinnerlayout.xml' и убедитесь, что у вас есть« TextView »с идентификатором' textView1'. Если вы это сделаете, тогда 's' будет null. – Eric

ответ

0

Вам нужно будет посмотреть это в отладчике. Либо txt1 имеет значение null, указывающее на проблему с вашим макетом, либо s равно null, что, вероятно, указывает на то, что адаптер еще не инициализирован.

Разбить код на более мелкие части. Осмотрите любые переменные, которые каждая строка использует в отладчике, прежде чем вы пройдете через эту строку. Ваша проблема появится.

+0

"txt1" не имеет значения "s" – Flake