Note that there are some explanatory texts on larger screens.

plurals
  1. POSUPER Simple TimePicker Implementation - Force Closes on Line 74
    primarykey
    data
    text
    <p>I'm really not sure what I'm doing wrong at this point... im trying to vew data stored by the time picker - but every time I run the application I get force close errors.</p> <p>P.S.</p> <p>It appears the issue is stemming from Line 74 in View Country.java </p> <p>timeTv.setCurrentHour(result.getInt(timeIndex));</p> <p>DATA OUT - JAVA:</p> <pre><code>import android.app.Activity; import android.app.AlertDialog; import android.content.DialogInterface; import android.content.Intent; import android.database.Cursor; import android.os.AsyncTask; import android.os.Bundle; import android.view.Menu; import android.view.MenuInflater; import android.view.MenuItem; import android.widget.TextView; import android.widget.TimePicker; public class ViewCountry extends Activity { private long rowID; private TextView nameTv; private TextView capTv; private TextView codeTv; private TimePicker timeTv; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.view_country); setUpViews(); Bundle extras = getIntent().getExtras(); rowID = extras.getLong(CountryList.ROW_ID); } private void setUpViews() { nameTv = (TextView) findViewById(R.id.nameText); capTv = (TextView) findViewById(R.id.capText); timeTv = (TimePicker) findViewById(R.id.timePicker1); codeTv = (TextView) findViewById(R.id.codeText); } @Override protected void onResume() { super.onResume(); new LoadContacts().execute(rowID); } private class LoadContacts extends AsyncTask&lt;Long, Object, Cursor&gt; { DatabaseConnector dbConnector = new DatabaseConnector(ViewCountry.this); @Override protected Cursor doInBackground(Long... params) { dbConnector.open(); return dbConnector.getOneContact(params[0]); } @Override protected void onPostExecute(Cursor result) { super.onPostExecute(result); result.moveToFirst(); // get the column index for each data item int nameIndex = result.getColumnIndex("name"); int capIndex = result.getColumnIndex("cap"); int codeIndex = result.getColumnIndex("code"); int timeIndex = result.getColumnIndex("time"); nameTv.setText(result.getString(nameIndex)); capTv.setText(result.getString(capIndex)); timeTv.setCurrentHour(result.getInt(timeIndex)); codeTv.setText(result.getString(codeIndex)); result.close(); dbConnector.close(); } } @Override public boolean onCreateOptionsMenu(Menu menu) { super.onCreateOptionsMenu(menu); MenuInflater inflater = getMenuInflater(); inflater.inflate(R.menu.view_country_menu, menu); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case R.id.editItem: Intent addEditContact = new Intent(this, AddEditCountry.class); addEditContact.putExtra(CountryList.ROW_ID, rowID); addEditContact.putExtra("name", nameTv.getText()); addEditContact.putExtra("cap", capTv.getText()); addEditContact.putExtra("time", timeTv.getCurrentHour()); addEditContact.putExtra("code", codeTv.getText()); startActivity(addEditContact); return true; case R.id.deleteItem: deleteContact(); return true; default: return super.onOptionsItemSelected(item); } } private void deleteContact() { AlertDialog.Builder alert = new AlertDialog.Builder(ViewCountry.this); alert.setTitle(R.string.confirmTitle); alert.setMessage(R.string.confirmMessage); alert.setPositiveButton(R.string.delete_btn, new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int button) { final DatabaseConnector dbConnector = new DatabaseConnector(ViewCountry.this); AsyncTask&lt;Long, Object, Object&gt; deleteTask = new AsyncTask&lt;Long, Object, Object&gt;() { @Override protected Object doInBackground(Long... params) { dbConnector.deleteContact(params[0]); return null; } @Override protected void onPostExecute(Object result) { finish(); } }; deleteTask.execute(new Long[] { rowID }); } } ); alert.setNegativeButton(R.string.cancel_btn, null).show(); } } </code></pre> <p>DATA OUT XML:</p> <pre><code>&lt;?xml version="1.0" encoding="utf-8"?&gt; &lt;TableLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="wrap_content" android:stretchColumns="1" android:layout_margin="5dp"&gt; &lt;TableRow&gt; &lt;TextView style="@style/StyleLabel" android:text="@string/name_lbl"/&gt; &lt;TextView android:id="@+id/nameText" style="@style/StyleText"/&gt; &lt;/TableRow&gt; &lt;TableRow&gt; &lt;TextView style="@style/StyleLabel" android:text="@string/cap_lbl"/&gt; &lt;TextView android:id="@+id/capText" style="@style/StyleText"/&gt; &lt;/TableRow&gt; &lt;TableRow&gt; &lt;TextView style="@style/StyleLabel" android:text="Time Limit"/&gt; &lt;TextView android:id="@+id/codeText" style="@style/StyleText"/&gt; &lt;/TableRow&gt; &lt;TableRow&gt; &lt;TextView style="@style/StyleLabel" android:text="Linked Users"/&gt; &lt;TextView style="@style/StyleText"/&gt; &lt;/TableRow&gt; &lt;TableRow&gt; &lt;TextView style="@style/StyleLabel" android:text="@string/code_lbl"/&gt; &lt;TextView android:id="@+id/code_lbl" style="@style/StyleText"/&gt; &lt;/TableRow&gt; </code></pre> <p></p> <p>DATA INPUT - JAVA</p> <pre><code>import android.app.Activity; import android.app.AlertDialog; import android.os.AsyncTask; import android.os.Bundle; import android.view.ViewGroup; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.EditText; import android.widget.FrameLayout; import android.widget.TimePicker; public class AddEditCountry extends Activity { private long rowID; private EditText nameEt; private EditText capEt; private EditText codeEt; private TimePicker timeEt; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.add_country); nameEt = (EditText) findViewById(R.id.nameEdit); capEt = (EditText) findViewById(R.id.capEdit); codeEt = (EditText) findViewById(R.id.codeEdit); timeEt = (TimePicker) findViewById(R.id.timeEdit); Bundle extras = getIntent().getExtras(); if (extras != null) { rowID = extras.getLong("row_id"); nameEt.setText(extras.getString("name")); capEt.setText(extras.getString("cap")); codeEt.setText(extras.getString("code")); timeEt.setCurrentHour(extras.getInt("time")); } Button saveButton =(Button) findViewById(R.id.saveBtn); saveButton.setOnClickListener(new OnClickListener() { public void onClick(View v) { if (nameEt.getText().length() != 0) { AsyncTask&lt;Object, Object, Object&gt; saveContactTask = new AsyncTask&lt;Object, Object, Object&gt;() { @Override protected Object doInBackground(Object... params) { saveContact(); return null; } @Override protected void onPostExecute(Object result) { finish(); } }; saveContactTask.execute((Object[]) null); } else { AlertDialog.Builder alert = new AlertDialog.Builder(AddEditCountry.this); alert.setTitle(R.string.errorTitle); alert.setMessage(R.string.errorMessage); alert.setPositiveButton(R.string.errorButton, null); alert.show(); } } }); } private void saveContact() { DatabaseConnector dbConnector = new DatabaseConnector(this); if (getIntent().getExtras() == null) { dbConnector.insertContact(nameEt.getText().toString(), capEt.getText().toString(), timeEt.getCurrentHour().toString(), codeEt.getText().toString()); } else { dbConnector.updateContact(rowID, nameEt.getText().toString(), capEt.getText().toString(), timeEt.getCurrentHour().toString(), codeEt.getText().toString()); } } } </code></pre> <p>DATA INPUT XML:</p> <pre><code>&lt;?xml version="1.0" encoding="utf-8"?&gt; &lt;ScrollView xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_weight="1"&gt; &lt;LinearLayout android:id="@+id/linearLayout" android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="vertical" android:padding="5dp"&gt; &lt;EditText android:id="@+id/nameEdit" android:layout_width="fill_parent" android:layout_height="wrap_content" android:imeOptions="actionNext" android:hint="@string/name_hint" android:inputType="textPersonName|textCapWords"/&gt; &lt;EditText android:id="@+id/capEdit" android:layout_width="fill_parent" android:layout_height="wrap_content" android:imeOptions="actionNext" android:hint="@string/cap_hint" android:inputType="textPersonName|textCapWords"/&gt; &lt;TextView android:id="@+id/textView3" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Data Limit" android:textColor="#ffffff" android:textAppearance="?android:textAppearanceMedium" /&gt; &lt;SeekBar android:id="@+id/seekBar1" android:layout_width="fill_parent" android:layout_height="wrap_content" /&gt; &lt;LinearLayout android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="horizontal" &gt; &lt;TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1.0" android:gravity="left" android:textColor="#ffffff" android:text="10MB" /&gt; &lt;TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1.0" android:gravity="right" android:textColor="#ffffff" android:text="Unlimited Data" /&gt; &lt;/LinearLayout&gt; &lt;TextView android:id="@+id/textView3" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Bandwidth Limit" android:textColor="#ffffff" android:textAppearance="?android:textAppearanceMedium" /&gt; &lt;SeekBar android:id="@+id/seekBar1" android:layout_width="fill_parent" android:layout_height="wrap_content" /&gt; &lt;LinearLayout android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="horizontal" &gt; &lt;TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1.0" android:gravity="left" android:textColor="#ffffff" android:text="10kbs" /&gt; &lt;TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1.0" android:textColor="#ffffff" android:gravity="right" android:text="Unlimited Bandwidth" /&gt; &lt;/LinearLayout&gt; &lt;TextView android:id="@+id/TextView02" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textAppearance="?android:textAppearanceSmall" /&gt; &lt;TextView android:id="@+id/TextView02" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="WiFi Time Limit" android:textColor="#ffffff" android:textAppearance="?android:textAppearanceMedium" /&gt; &lt;TimePicker android:id="@+id/timeEdit" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" android:gravity="center" android:layout_weight="1.0" /&gt; &lt;EditText android:id="@+id/codeEdit" android:inputType="textUri" android:layout_width="fill_parent" android:layout_height="wrap_content" android:ems="10" android:lines="1" android:hint="@string/code_hint" android:imeOptions="actionNext" /&gt; &lt;Button android:id="@+id/saveBtn" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="15dp" android:layout_gravity="center_horizontal" android:text="@string/save_btn"/&gt; &lt;/LinearLayout&gt; &lt;/ScrollView&gt; </code></pre> <h1>ViewCountry.java Updated w 1st Suggestion Source Code:</h1> <pre><code>import android.app.Activity; import android.app.AlertDialog; import android.content.DialogInterface; import android.content.Intent; import android.database.Cursor; import android.os.AsyncTask; import android.os.Bundle; import android.view.Menu; import android.view.MenuInflater; import android.view.MenuItem; import android.widget.TextView; import android.widget.TimePicker; public class ViewCountry extends Activity { private long rowID; private TextView nameTv; private TextView capTv; private TextView codeTv; private TimePicker timeTv; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.view_country); setUpViews(); Bundle extras = getIntent().getExtras(); rowID = extras.getLong(CountryList.ROW_ID); } private void setUpViews() { nameTv = (TextView) findViewById(R.id.nameText); capTv = (TextView) findViewById(R.id.capText); timeTv = (TimePicker) findViewById(R.id.timeEdit); codeTv = (TextView) findViewById(R.id.codeText); } @Override protected void onResume() { super.onResume(); new LoadContacts().execute(rowID); } private class LoadContacts extends AsyncTask&lt;Long, Object, Cursor&gt; { DatabaseConnector dbConnector = new DatabaseConnector(ViewCountry.this); @Override protected Cursor doInBackground(Long... params) { dbConnector.open(); return dbConnector.getOneContact(params[0]); } @Override protected void onPostExecute(Cursor result) { super.onPostExecute(result); result.moveToFirst(); // get the column index for each data item int nameIndex = result.getColumnIndex("name"); int capIndex = result.getColumnIndex("cap"); int codeIndex = result.getColumnIndex("code"); int timeIndex = result.getColumnIndex("time"); nameTv.setText(result.getString(nameIndex)); capTv.setText(result.getString(capIndex)); timeTv.setCurrentHour(result.getInt(timeIndex)); codeTv.setText(result.getString(codeIndex)); result.close(); dbConnector.close(); } } @Override public boolean onCreateOptionsMenu(Menu menu) { super.onCreateOptionsMenu(menu); MenuInflater inflater = getMenuInflater(); inflater.inflate(R.menu.view_country_menu, menu); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case R.id.editItem: Intent addEditContact = new Intent(this, AddEditCountry.class); addEditContact.putExtra(CountryList.ROW_ID, rowID); addEditContact.putExtra("name", nameTv.getText()); addEditContact.putExtra("cap", capTv.getText()); addEditContact.putExtra("time", timeTv.getCurrentHour()); addEditContact.putExtra("code", codeTv.getText()); startActivity(addEditContact); return true; case R.id.deleteItem: deleteContact(); return true; default: return super.onOptionsItemSelected(item); } } private void deleteContact() { AlertDialog.Builder alert = new AlertDialog.Builder(ViewCountry.this); alert.setTitle(R.string.confirmTitle); alert.setMessage(R.string.confirmMessage); alert.setPositiveButton(R.string.delete_btn, new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int button) { final DatabaseConnector dbConnector = new DatabaseConnector(ViewCountry.this); AsyncTask&lt;Long, Object, Object&gt; deleteTask = new AsyncTask&lt;Long, Object, Object&gt;() { @Override protected Object doInBackground(Long... params) { dbConnector.deleteContact(params[0]); return null; } @Override protected void onPostExecute(Object result) { finish(); } }; deleteTask.execute(new Long[] { rowID }); } } ); alert.setNegativeButton(R.string.cancel_btn, null).show(); } } </code></pre> <h1>view_country.xml</h1> <pre><code>&lt;?xml version="1.0" encoding="utf-8"?&gt; &lt;TableLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="wrap_content" android:stretchColumns="1" android:layout_margin="5dp"&gt; &lt;TableRow&gt; &lt;TextView style="@style/StyleLabel" android:text="@string/name_lbl"/&gt; &lt;TextView android:id="@+id/nameText" style="@style/StyleText"/&gt; &lt;/TableRow&gt; &lt;TableRow&gt; &lt;TextView style="@style/StyleLabel" android:text="@string/cap_lbl"/&gt; &lt;TextView android:id="@+id/capText" style="@style/StyleText"/&gt; &lt;/TableRow&gt; &lt;TableRow&gt; &lt;TextView style="@style/StyleLabel" android:text="@string/code_lbl"/&gt; &lt;TextView android:id="@+id/codeText" style="@style/StyleText"/&gt; &lt;/TableRow&gt; &lt;TableRow&gt; &lt;TextView style="@style/StyleLabel" android:text="Linked Users"/&gt; &lt;TextView style="@style/StyleText"/&gt; &lt;/TableRow&gt; &lt;TableRow&gt; &lt;TextView style="@style/StyleLabel" android:text="Time Limit"/&gt; &lt;TextView android:id="@+id/timeEdit" style="@style/StyleText"/&gt; &lt;/TableRow&gt; &lt;/TableLayout&gt; </code></pre> <p>MOST RECENT LOGCAT: (after adding timeEdit to a TextView in view_country.xml)</p> <pre><code>03-22 03:02:27.724: D/Activity(32616): Activity.onPause(), editTextTapSensorList size: 0 03-22 03:02:27.794: W/dalvikvm(32616): threadid=1: thread exiting with uncaught exception (group=0x410889d8) 03-22 03:02:27.794: E/AndroidRuntime(32616): FATAL EXCEPTION: main 03-22 03:02:27.794: E/AndroidRuntime(32616): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.nfc.linkingmanager/com.nfc.linkingmanager.ViewCountry}: java.lang.ClassCastException: android.widget.TextView cannot be cast to android.widget.TimePicker 03-22 03:02:27.794: E/AndroidRuntime(32616): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1960) 03-22 03:02:27.794: E/AndroidRuntime(32616): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1985) 03-22 03:02:27.794: E/AndroidRuntime(32616): at android.app.ActivityThread.access$600(ActivityThread.java:127) 03-22 03:02:27.794: E/AndroidRuntime(32616): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1151) 03-22 03:02:27.794: E/AndroidRuntime(32616): at android.os.Handler.dispatchMessage(Handler.java:99) 03-22 03:02:27.794: E/AndroidRuntime(32616): at android.os.Looper.loop(Looper.java:137) 03-22 03:02:27.794: E/AndroidRuntime(32616): at android.app.ActivityThread.main(ActivityThread.java:4477) 03-22 03:02:27.794: E/AndroidRuntime(32616): at java.lang.reflect.Method.invokeNative(Native Method) 03-22 03:02:27.794: E/AndroidRuntime(32616): at java.lang.reflect.Method.invoke(Method.java:511) 03-22 03:02:27.794: E/AndroidRuntime(32616): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:788) 03-22 03:02:27.794: E/AndroidRuntime(32616): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:555) 03-22 03:02:27.794: E/AndroidRuntime(32616): at dalvik.system.NativeStart.main(Native Method) 03-22 03:02:27.794: E/AndroidRuntime(32616): Caused by: java.lang.ClassCastException: android.widget.TextView cannot be cast to android.widget.TimePicker 03-22 03:02:27.794: E/AndroidRuntime(32616): at com.nfc.linkingmanager.ViewCountry.setUpViews(ViewCountry.java:38) 03-22 03:02:27.794: E/AndroidRuntime(32616): at com.nfc.linkingmanager.ViewCountry.onCreate(ViewCountry.java:30) 03-22 03:02:27.794: E/AndroidRuntime(32616): at android.app.Activity.performCreate(Activity.java:4701) 03-22 03:02:27.794: E/AndroidRuntime(32616): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1051) 03-22 03:02:27.794: E/AndroidRuntime(32616): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1924) 03-22 03:02:27.794: E/AndroidRuntime(32616): ... 11 more </code></pre>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload