0

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>

1 Answer 1

1

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!

Sign up to request clarification or add additional context in comments.

1 Comment

I have a readRecords list I have set up to show contents of table, can I translate this into a spinner?

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.