Reputation: 119
I have a SQLite database in which I have 2 Tables (there will soon be more) I am trying to populate a spinner from on 1 of those tables and cant find the resources to target a specific table.
So my current situation is I have to tables 'Menu Item' and 'Menu Category' ... I have spinner in 'Menu Item' that I would like populated with the items in 'Menu Category'.
Here is my MenuItem Activity
public class SettingsMenuItem extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_settings_menu_item);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
countRecords();
readRecords();
FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
fab.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG)
.setAction("Action", null).show();
}
});
Button buttonCreateLocation = (Button) findViewById(R.id.btnAdd);
buttonCreateLocation.setOnClickListener(new OnClickListenerCreateMenuItem());
}
public void countRecords() {
int recordCount = new TableControllerMenuItem(this).count();
TextView textViewRecordCount = (TextView) findViewById(R.id.textViewRecordCount);
textViewRecordCount.setText(recordCount + " records found.");
}
public void readRecords() {
LinearLayout linearLayoutRecords = (LinearLayout) findViewById(R.id.linearLayoutRecords);
linearLayoutRecords.removeAllViews();
List<ObjectMenuItem> menuitem = new TableControllerMenuItem(this).read();
if (menuitem.size() > 0) {
for (ObjectMenuItem obj : menuitem) {
int id = obj.id;
String menuitemName = obj.name;
String menuitemDescription = obj.description;
Float menuitemPrice = obj.price;
Float menuitemCost = obj.cost;
String textViewContents = menuitemName;
TextView textViewMenuItem= new TextView(this);
textViewMenuItem.setPadding(0, 10, 0, 10);
textViewMenuItem.setText(textViewContents);
textViewMenuItem.setTag(Integer.toString(id));
textViewMenuItem.setTextSize(20.0f);
textViewMenuItem.setOnLongClickListener(new OnLongClickListenerMenuItem());
linearLayoutRecords.addView(textViewMenuItem);
}
}
else {
TextView locationItem = new TextView(this);
locationItem.setPadding(8, 8, 8, 8);
locationItem.setText("No records yet.");
linearLayoutRecords.addView(locationItem);
}
}
And here is my MenuItem xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent">
<EditText
android:id="@+id/editTextItemName"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:hint="Item Name"
android:singleLine="true" >
<requestFocus />
</EditText>
<EditText
android:id="@+id/editTextItemDesc"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_below="@+id/editTextItemName"
android:hint="Item Description"
android:singleLine="true" />
<EditText
android:id="@+id/editTextItemPrice"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_below="@+id/editTextItemDesc"
android:hint="Item Price"
android:singleLine="true"
android:inputType="numberDecimal"/>
<EditText
android:id="@+id/editTextItemCost"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_below="@+id/editTextItemPrice"
android:hint="Item Cost"
android:singleLine="true"
android:inputType="numberDecimal"/>
<Spinner
android:id="@+id/spinnerCategory"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/editTextItemCost"></Spinner>
Upvotes: 0
Views: 498
Reputation: 68
Read the data from the database and save the relevant data to an array. Then use that array to populate and ArrayAdapter and finally set that ArrayAdapter as the adapter for the spinner.
Hope this helps!
Upvotes: 1