Why is it my app forced closed when I click on stock availability button?
AvailButton_main.java
public class AvailButton_main extends BaseActivity {
private Nearable currentNearable;
TextView ASM, AQ, ASA, ACA;
Spinner SpinnerSA, SpinnerCA;
private Database_availability dba;
Availresult Adbrow;
@Override
protected int getLayoutResId() {
return R.layout.nearable_demo;
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.avail_2);
currentNearable = getIntent().getExtras().getParcelable(ListNearablesActivity.EXTRAS_NEARABLE);
ASM = (TextView) findViewById(R.id.ashoemodel);
AQ = (TextView) findViewById(R.id.aquan);
ASA = (TextView) findViewById(R.id.sizea);
ACA = (TextView) findViewById(R.id.clra);
SpinnerSA = (Spinner) findViewById(R.id.spinnersizea);
SpinnerCA = (Spinner) findViewById(R.id.spinnerclra);
toolbar = (Toolbar) findViewById(R.id.toolbar);
toolbar.setNavigationIcon(R.drawable.ic_action_navigation_arrow_back);
toolbar.setTitle(getTitle());
toolbar.setNavigationOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
onBackPressed();
}
});
displayStockAvailInfo();
String[] asize = dba.getSizeAvail(currentNearable.identifier);
ArrayAdapter<String> adapter= new ArrayAdapter<>
(this,android.R.layout.simple_spinner_item, asize); //for size available
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
SpinnerSA.setAdapter(adapter);
String[] acolour = dba.getColourAvail(currentNearable.identifier);
ArrayAdapter<String> adapter1= new ArrayAdapter<>
(this,android.R.layout.simple_spinner_item, acolour); //for colours available
adapter1.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
SpinnerCA.setAdapter(adapter1);
}
private void displayStockAvailInfo() {
dba = new Database_availability(this);
Adbrow = dba.getResultAvail(currentNearable.identifier);
Adbrow.getIdentifieravail();
Adbrow.getIdavail();
String shoemodel = Adbrow.getSmavail().toString();
Adbrow.getCaavail().toString();
Adbrow.getSaavail().toString();
//Set the text to the TextView
ASM.setText(shoemodel);
ACA.setText(Adbrow.getQuantityavail());
}
}
ListNearablesActivity.java
public class ListNearablesActivity extends BaseActivity {
private static final String TAG = ListNearablesActivity.class.getSimpleName();
public static final String EXTRAS_TARGET_ACTIVITY = "extrasTargetActivity";
public static final String EXTRAS_NEARABLE = "extrasNearable";
private static final int REQUEST_ENABLE_BT = 1234;
private BeaconManager beaconManager;
private NearableListAdapter adapter;
private String scanId;
@Override
protected int getLayoutResId() {
return R.layout.main;
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// Configure device list.
adapter = new NearableListAdapter(this);
ListView list = (ListView) findViewById(R.id.device_list);
list.setAdapter(adapter);
list.setOnItemClickListener(createOnItemClickListener());
//Initialize Beacon Manager
beaconManager = new BeaconManager(this);
}
@Override
protected void onDestroy() {
beaconManager.disconnect();
super.onDestroy();
}
@Override
protected void onStart() {
super.onStart();
// Check if device supports Bluetooth Low Energy.
if (!beaconManager.hasBluetooth()) {
Toast.makeText(this, "Device does not have Bluetooth Low Energy", Toast.LENGTH_LONG).show();
return;
}
// If Bluetooth is not enabled, let user enable it.
if (!beaconManager.isBluetoothEnabled()) {
Intent enableBtIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);
startActivityForResult(enableBtIntent, REQUEST_ENABLE_BT);
} else {
connectToService();
}
}
@Override
protected void onStop() {
beaconManager.disconnect();
super.onStop();
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == REQUEST_ENABLE_BT) {
if (resultCode == Activity.RESULT_OK) {
connectToService();
} else {
Toast.makeText(this, "Bluetooth not enabled", Toast.LENGTH_LONG).show();
toolbar.setSubtitle("Bluetooth not enabled");
}
}
super.onActivityResult(requestCode, resultCode, data);
}
private void connectToService() {
toolbar.setSubtitle("Scanning...");
adapter.replaceWith(Collections.<Nearable>emptyList());
beaconManager.setNearableListener(new BeaconManager.NearableListener() {
@Override
public void onNearablesDiscovered(List<Nearable> nearables) {
toolbar.setSubtitle("Found shoes: " + nearables.size());
adapter.replaceWith(nearables);
for (Nearable nearable : nearables) {
if (nearable.isMoving) {
try {
Class<?> clazz = Class.forName(getIntent().getStringExtra(EXTRAS_TARGET_ACTIVITY));
Intent intent = new Intent(ListNearablesActivity.this, clazz);
intent.putExtra(EXTRAS_NEARABLE, adapter.getItem(nearables.indexOf(nearable)));
startActivity(intent);
} //close for try
catch (ClassNotFoundException e) {
Log.e(TAG, "Finding class by name failed", e);
} //close for catch (ClassNotFoundException e)
}
}
} //for override
}); //for beaconManager.setNearable
beaconManager.connect(new BeaconManager.ServiceReadyCallback() {
@Override
public void onServiceReady() {
scanId = beaconManager.startNearableDiscovery();
} //for onServiceReady
}); //for .connect
} //for private void connectToService
private AdapterView.OnItemClickListener createOnItemClickListener() {
return new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, final int position, long id) {
if (getIntent().getStringExtra(EXTRAS_TARGET_ACTIVITY) != null){
try {
Class<?> clazz = Class.forName(getIntent().getStringExtra(EXTRAS_TARGET_ACTIVITY));
Intent intent = new Intent(ListNearablesActivity.this, clazz);
intent.putExtra(EXTRAS_NEARABLE, adapter.getItem(position));
startActivity(intent);
} //close for try
catch (ClassNotFoundException e) {
Log.e(TAG, "Finding class by name failed", e);
} //close for catch (ClassNotFoundException e)
} //close for getintent.getStringExtra()
} //close for public void onitemclick
}; //close for return new adapterview
} //close for private adapter
}