I want to add spinner values to listview on button click in fragment. Actually my screen contain two spinner and a listview. I just want to add spinner values to the list on button click. I have written some code for it but Iam getting null pointer exception in it. here is my code:
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.activity_thirdswipe, container, false);
arraylistAdd = new ArrayList<DeviceInfo>();
spinner = (Spinner) rootView.findViewById(R.id.spnDevice);
spinnerArrayAdapter = new ArrayAdapter<String>(rootView.getContext(), R.layout.spinner_items, spinnerArray); //selected item will look like a spinner set from XML
spinnerArrayAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner.setAdapter(spinnerArrayAdapter);
spinner = (Spinner) rootView.findViewById(R.id.spnAction);
spinnerArrayAdapter = new ArrayAdapter<String>(rootView.getContext(), R.layout.spinner_items, spinnerArray); //selected item will look like a spinner set from XML
spinnerArrayAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner.setAdapter(spinnerArrayAdapter);
btnAdd = (Button) rootView.findViewById(R.id.buttonAdd);
listOnAdd = (ListView) rootView.findViewById(R.id.listDynamic);
deviceType = spinner.getSelectedItem().toString();
actionType = spinner.getSelectedItem().toString();
Log.i("item", deviceType +" "+ actionType);
adp=new CustomListDynamic(getActivity(),R.layout.custom_add_list,arraylistAdd);
btnAdd.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
info = new DeviceInfo();
info.setAction(actionType);
info.setDevice(deviceType);
arraylistAdd.add(info);
for(int i=0;i<arraylistAdd.size();i++){
Log.i("itemArray", arraylistAdd.get(i).getDevice());
}
adp.notifyDataSetChanged();
}
});
listOnAdd.setAdapter(adp);
return rootView;
}
My customAdpter class is following:
public class CustomListDynamic extends ArrayAdapter<DeviceInfo> {
Context context;
List<DeviceInfo> objects;
int layoutResourceId;
public CustomListDynamic(Context context, int layoutResourceId,
List<DeviceInfo> rowItems) {
super(context, layoutResourceId, rowItems);
this.context = context;
this.layoutResourceId = layoutResourceId;
objects = rowItems;
}
@Override
public int getCount() {
return objects.size();
}
@Override
public long getItemId(int position) {
return position;
}
private class ViewHolder {
TextView txtDeviceType;
TextView txtActionType;
}
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder;
final DeviceInfo rowItem = getItem(position);
LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
if (convertView == null) {
convertView = inflater.inflate(R.layout.custom_add_list, null);
holder = new ViewHolder();
holder.txtDeviceType = (TextView) convertView.findViewById(R.id.txtDeviceType);
holder.txtDeviceType = (TextView) convertView.findViewById(R.id.txtMobileNumber);
convertView.setTag(holder);
} else
holder = (ViewHolder) convertView.getTag();
holder.txtDeviceType.setText(rowItem.getDevice());
holder.txtActionType.setText(rowItem.getAction());
Log.i("device set", rowItem.getDevice());
return convertView;
}
}
Logcat:
05-20 18:41:49.301: E/AndroidRuntime(2083): at android.widget.LinearLayout.onLayout(LinearLayout.java:1434)
05-20 19:08:34.661: E/AndroidRuntime(2439): FATAL EXCEPTION: main
05-20 19:08:34.661: E/AndroidRuntime(2439): java.lang.NullPointerException
05-20 19:08:34.661: E/AndroidRuntime(2439): at com.example.test.CustomListDynamic.getView(CustomListDynamic.java:66)
05-20 19:08:34.661: E/AndroidRuntime(2439): at android.widget.AbsListView.obtainView(AbsListView.java:2159)
05-20 19:08:34.661: E/AndroidRuntime(2439): at android.widget.ListView.makeAndAddView(ListView.java:1831)
05-20 19:08:34.661: E/AndroidRuntime(2439): at android.widget.ListView.fillDown(ListView.java:674)
05-20 19:08:34.661: E/AndroidRuntime(2439): at android.widget.ListView.fillFromTop(ListView.java:735)
05-20 19:08:34.661: E/AndroidRuntime(2439): at android.widget.ListView.layoutChildren(ListView.java:1638)
05-20 19:08:34.661: E/AndroidRuntime(2439): at android.widget.AbsListView.onLayout(AbsListView.java:1994)
05-20 19:08:34.661: E/AndroidRuntime(2439): at android.view.View.layout(View.java:14008)
05-20 19:08:34.661: E/AndroidRuntime(2439): at android.view.ViewGroup.layout(ViewGroup.java:4373)
05-20 19:08:34.661: E/AndroidRuntime(2439): at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1663)
05-20 19:08:34.661: E/AndroidRuntime(2439): at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1521)
05-20 19:08:34.661: E/AndroidRuntime(2439): at android.widget.LinearLayout.onLayout(LinearLayout.java:1434)
05-20 19:08:34.661: E/AndroidRuntime(2439): at android.view.View.layout(View.java:14008)
05-20 19:08:34.661: E/AndroidRuntime(2439): at android.view.ViewGroup.layout(ViewGroup.java:4373)
05-20 19:08:34.661: E/AndroidRuntime(2439): at android.widget.RelativeLayout.onLayout(RelativeLayout.java:1021)
05-20 19:08:34.661: E/AndroidRuntime(2439): at android.view.View.layout(View.java:14008)
05-20 19:08:34.661: E/AndroidRuntime(2439): at android.view.ViewGroup.layout(ViewGroup.java:4373)
05-20 19:08:34.661: E/AndroidRuntime(2439): at android.widget.FrameLayout.onLayout(FrameLayout.java:448)
05-20 19:08:34.661: E/AndroidRuntime(2439): at android.view.View.layout(View.java:14008)
05-20 19:08:34.661: E/AndroidRuntime(2439): at android.view.ViewGroup.layout(ViewGroup.java:4373)
05-20 19:08:34.661: E/AndroidRuntime(2439): at android.support.v4.view.ViewPager.onLayout(ViewPager.java:1141)
05-20 19:08:34.661: E/AndroidRuntime(2439): at android.view.View.layout(View.java:14008)
05-20 19:08:34.661: E/AndroidRuntime(2439): at android.view.ViewGroup.layout(ViewGroup.java:4373)
05-20 19:08:34.661: E/AndroidRuntime(2439): at android.widget.FrameLayout.onLayout(FrameLayout.java:448)
05-20 19:08:34.661: E/AndroidRuntime(2439): at android.view.View.layout(View.java:14008)
Please let me know the solution if anybody has..thanks