The first application, and so actually new on android (played about a year ago, but nothing came of it), decent when programming. Wanting to make sure that the application is displayed on the phone, there is no atm functionality. It compiles perfectly, there are no problems. Click it on your phone and "Sorry, Splitr has stopped."
Edit - added in MainActivity.java, editing has * before and after (not in the actual code), but now the flags
adapter.setDropDownViewResource(android.R.layout.activity_main);
says the expected error id is: (18, 36)
setDropDownViewResource, activity_main and setAdapter all in red
Android Studio
Moto G - CM11 4.4.4
Here is the code, let me know if I missed something.
MainActivity.java
package com.hydr0dr4gon.splitrv2; import android.app.Activity; import android.os.Bundle; import android.view.Menu; import android.view.MenuItem; *import android.widget.ArrayAdapter; import android.widget.Spinner;* public class MainActivity extends Activity { *Spinner spinnerSplit = (Spinner) findViewById(R.id.spinner);
SplitrDialogFragment.java
package com.hydr0dr4gon.splitrv2; import android.app.AlertDialog; import android.app.Dialog; import android.app.DialogFragment; import android.content.DialogInterface; import android.os.Bundle; public class SplitrDialogFragment extends DialogFragment { @Override public Dialog onCreateDialog(Bundle savedInstanceState) {
strings.xml
<?xml version="1.0" encoding="utf-8"?> <resources> <string name="app_name">Splitr</string> <string name="hello_world">Hello world!</string> <string name="action_settings">Settings</string> <string name="btnSplit">Split</string> <string name="btnTip">+ Tip</string> <string name="txtSplit">Split By</string> <string name="txtHint">Enter Bill Total</string> <string name="spinnerSplit">No. of People</string> <string name="dialog_split_pay">Each Person Pays</string> <string name="OK">OK</string> <array name="arraySplitr"> <item>2</item> <item>3</item> <item>4</item> <item>5</item> <item>6</item> <item>7</item> <item>8</item> <item>9</item> <item>10</item> </array>
actvity_main.xml
RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="fill_parent" android:layout_height="fill_parent" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" android:paddingBottom="@dimen/activity_vertical_margin" tools:context="com.hydr0dr4gon.splitr.MainActivity"> <TableLayout android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_alignParentTop="true" android:layout_alignParentStart="true" android:paddingLeft="40dp" android:paddingTop="80dp" android:paddingRight="40dp" android:paddingBottom="80dp"> <TableRow android:layout_width="fill_parent" android:layout_height="fill_parent"> <EditText android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_span="2" android:inputType="number" android:ems="10" android:id="@+id/editText" android:layout_column="0" android:layout_weight="1.5" android:hint="@string/txtHint" /> </TableRow> <TableRow android:layout_width="fill_parent" android:layout_height="fill_parent"> <TextView android:layout_width="0dp" android:layout_height="match_parent" android:text="@string/txtSplit" android:id="@+id/txtSplit" android:layout_weight="1" android:textSize="32dp" android:textAlignment="center" android:gravity="center" /> <Spinner android:layout_width="0dp" android:layout_height="match_parent" android:id="@+id/spinner" android:layout_weight="1" android:spinnerStyle="@android:style/Widget.Spinner.DropDown" android:textAlignment="center" android:entries="@array/arraySplitr" android:prompt="@string/spinnerSplit"/> </TableRow> <TableRow android:layout_width="fill_parent" android:layout_height="fill_parent"> <Button android:layout_width="0dp" android:layout_height="wrap_content" android:text="@string/btnTip" android:id="@+id/btnTip" android:layout_weight="1" /> <Button android:layout_width="0dp" android:layout_height="wrap_content" android:text="@string/btnSplit" android:id="@+id/btnSplit" android:layout_weight="1" /> </TableRow> </TableLayout>
Logcat
> 07-11 21:18:50.899 10290-10290/com.hydr0dr4gon.splitrv2 D/ActivityThread﹕ handleBindApplication:com.hydr0dr4gon.splitrv2 07-11 21:18:50.899 10290-10290/com.hydr0dr4gon.splitrv2 D/ActivityThread﹕ setTargetHeapUtilization:0.75 07-11 21:18:50.899 10290-10290/com.hydr0dr4gon.splitrv2 D/ActivityThread﹕ setTargetHeapMinFree:2097152 07-11 21:18:51.198 10290-10290/com.hydr0dr4gon.splitrv2 D/AndroidRuntime﹕ Shutting down VM 07-11 21:18:51.206 10290-10290/com.hydr0dr4gon.splitrv2 E/AndroidRuntime﹕ FATAL EXCEPTION: main Process: com.hydr0dr4gon.splitrv2, PID: 10290 java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String java.lang.Object.toString()' on a null object reference at android.widget.ArrayAdapter.createViewFromResource(ArrayAdapter.java:394) at android.widget.ArrayAdapter.getView(ArrayAdapter.java:362) at android.widget.AbsSpinner.onMeasure(AbsSpinner.java:193) at android.widget.Spinner.onMeasure(Spinner.java:482) at android.view.View.measure(View.java:16521) at android.widget.TableRow.getColumnsWidths(TableRow.java:312) at android.widget.TableLayout.findLargestCells(TableLayout.java:508) at android.widget.TableLayout.measureVertical(TableLayout.java:473) at android.widget.TableLayout.onMeasure(TableLayout.java:439) at android.view.View.measure(View.java:16521) at android.widget.RelativeLayout.measureChildHorizontal(RelativeLayout.java:719) at android.widget.RelativeLayout.onMeasure(RelativeLayout.java:455) at android.view.View.measure(View.java:16521) at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5125) at android.widget.FrameLayout.onMeasure(FrameLayout.java:310) at android.view.View.measure(View.java:16521) at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5125) at com.android.internal.widget.ActionBarOverlayLayout.onMeasure(ActionBarOverlayLayout.java:327) at android.view.View.measure(View.java:16521) at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5125) at android.widget.FrameLayout.onMeasure(FrameLayout.java:310) at com.android.internal.policy.impl.PhoneWindow$DecorView.onMeasure(PhoneWindow.java:2552) at android.view.View.measure(View.java:16521) at android.view.ViewRootImpl.performMeasure(ViewRootImpl.java:1912) at android.view.ViewRootImpl.measureHierarchy(ViewRootImpl.java:1109) at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1291) at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:996) at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:5600) at android.view.Choreographer$CallbackRecord.run(Choreographer.java:761) at android.view.Choreographer.doCallbacks(Choreographer.java:574) at android.view.Choreographer.doFrame(Choreographer.java:544) at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:747) at android.os.Handler.handleCallback(Handler.java:733) at android.os.Handler.dispatchMessage(Handler.java:95) at android.os.Looper.loop(Looper.java:136) at android.app.ActivityThread.main(ActivityThread.java:5137) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:795) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:611)
Thanks.