Note that there are some explanatory texts on larger screens.

plurals
  1. POForce Close in Landscape Mode, but not in Portrait
    primarykey
    data
    text
    <p>I have an application which shows a list of items in runtime. When the user presses a <code>Button</code>, all selected items should be deleted (selection determined by <code>CheckBox</code>). In <em>portrait</em> mode everything works well, but when I switch to landscape mode <strong>when the number of rows are more than 3</strong>, pressing the delete button gets the <code>Force Close Exception</code> and I am unable to print the stack trace. <strong>When there are 3 or less rows it works perfectly!</strong> I've written the layout for both <code>layout</code> (portrait) and <code>layout-land</code> directories. Code and Layouts are as follows:</p> <p>Here is the handler for Delete Button:</p> <pre><code> Button DeleteGoods=(Button)findViewById(R.id.DeleteSelectedGoodsButton); DeleteGoods.setOnClickListener(new OnClickListener() { public void onClick(View v) { CheckBox cbx = (CheckBox)listView.findViewById(R.id.ChkOrder); int firstPosition = listView.getFirstVisiblePosition(); for (int i = firstPosition; i &lt; listView.getCount(); i++) { View v1 = listView.getChildAt(i); cbx = (CheckBox)v1.findViewById(R.id.ChkOrder); if(cbx.isChecked()) checkedItemPosition=i; } try { DeleteCheckedItem(checkedItemPosition); Toast.makeText(getApplicationContext(),"The selected order has been deleted successfully.", Toast.LENGTH_SHORT).show(); finish(); startActivity(getIntent()); } catch (Exception e) { Toast.makeText(getApplicationContext(), e.toString(), Toast.LENGTH_LONG).show(); } } }); </code></pre> <p>Here is the layout in landscape mode:</p> <pre><code>&lt;?xml version="1.0" encoding="utf-8"?&gt; &lt;RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" android:background="#000000" &gt; &lt;Button android:id="@+id/DeleteSelectedGoodsButton" android:layout_width="150dp" android:layout_height="45dp" android:text="@string/DeleteSelectedGoods" android:layout_alignParentTop="true" android:layout_alignParentLeft="true" /&gt; &lt;Button android:id="@+id/ConfirmDelete" android:layout_width="150dp" android:layout_height="45dp" android:text="@string/ConfirmDeleteButton" android:layout_alignParentTop="true" android:layout_centerHorizontal="true" /&gt; &lt;Button android:id="@+id/CancelButton" android:layout_width="150dp" android:layout_height="45dp" android:text="@string/CancelButton" android:layout_alignParentTop="true" android:layout_alignParentRight="true" /&gt; &lt;TextView android:id="@+id/aa" android:layout_height="wrap_content" android:layout_width="wrap_content" android:layout_below="@id/CancelButton" /&gt; &lt;TextView android:id="@+id/GOODNAME_CELL" android:layout_width="180dp" android:layout_height="wrap_content" android:background="@drawable/border" android:textSize="18dp" android:text="Order" android:paddingLeft="5dp" android:layout_below="@id/aa" android:layout_alignParentLeft="true" /&gt; &lt;TextView android:id="@+id/GOODUNITPRICE_CELL" android:layout_width="180dp" android:layout_height="wrap_content" android:background="@drawable/border" android:textSize="18dp" android:text="Unit Price" android:paddingLeft="5dp" android:layout_below="@id/aa" android:layout_toRightOf="@id/GOODNAME_CELL" /&gt; &lt;TextView android:id="@+id/QUANTITYCELL" android:layout_width="120dp" android:layout_height="wrap_content" android:background="@drawable/border" android:textSize="18dp" android:text="Quantity" android:paddingLeft="5dp" android:layout_below="@id/aa" android:layout_toRightOf="@id/GOODUNITPRICE_CELL" /&gt; &lt;ListView android:id="@android:id/list" android:layout_width="fill_parent" android:layout_height="wrap_content" style="@style/CodeFont" android:layout_alignParentLeft="true" android:layout_below="@id/GOODUNITPRICE_CELL" /&gt; &lt;TextView android:id="@+id/TotalPriceTextview" android:layout_width="600dp" android:layout_height="wrap_content" android:text="" android:layout_alignParentBottom="true" android:layout_centerHorizontal="true" android:background="@drawable/back" android:textColor="#FFFFFF" android:textSize="20dp" /&gt; &lt;/RelativeLayout&gt; </code></pre> <p>This is the exception I am getting:</p> <pre><code>02-19 10:07:11.398: E/AndroidRuntime(4335): FATAL EXCEPTION: main 02-19 10:07:11.398: E/AndroidRuntime(4335): java.lang.NullPointerException 02-19 10:07:11.398: E/AndroidRuntime(4335): at com.example.nfc.PrepopSqliteDbActivity$1.onClick(PrepopSqliteDbActivity.java:117) 02-19 10:07:11.398: E/AndroidRuntime(4335): at android.view.View.performClick(View.java:2552) 02-19 10:07:11.398: E/AndroidRuntime(4335): at android.view.View$PerformClick.run(View.java:9229) 02-19 10:07:11.398: E/AndroidRuntime(4335): at android.os.Handler.handleCallback(Handler.java:587) 02-19 10:07:11.398: E/AndroidRuntime(4335): at android.os.Handler.dispatchMessage(Handler.java:92) 02-19 10:07:11.398: E/AndroidRuntime(4335): at android.os.Looper.loop(Looper.java:138) 02-19 10:07:11.398: E/AndroidRuntime(4335): at android.app.ActivityThread.main(ActivityThread.java:3701) 02-19 10:07:11.398: E/AndroidRuntime(4335): at java.lang.reflect.Method.invokeNative(Native Method) 02-19 10:07:11.398: E/AndroidRuntime(4335): at java.lang.reflect.Method.invoke(Method.java:507) 02-19 10:07:11.398: E/AndroidRuntime(4335): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:878) 02-19 10:07:11.398: E/AndroidRuntime(4335): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:636) 02-19 10:07:11.398: E/AndroidRuntime(4335): at dalvik.system.NativeStart.main(Native Method) 02-19 10:07:11.408: W/ActivityManager(1768): Force finishing activity com.example.nfc/.PrepopSqliteDbActivity 02-19 10:07:11.909: W/ActivityManager(1768): Activity pause timeout for HistoryRecord{40b2ed78 com.example.nfc/.PrepopSqliteDbActivity} 02-19 10:07:16.353: I/InputDispatcher(1768): Application is not responding: Window{40a73e60 com.example.nfc/com.example.nfc.PrepopSqliteDbActivity paused=false}. 5004.7ms since event, 5004.4ms since wait started 02-19 10:07:16.353: I/InputDispatcher(1768): Dropping event because the pointer is not down. 02-19 10:07:16.353: I/InputDispatcher(1768): Dropping event because the pointer is not down. 02-19 10:07:16.353: I/WindowManager(1768): Input event dispatching timed out sending to com.example.nfc/com.example.nfc.PrepopSqliteDbActivity 02-19 10:07:16.353: I/ActivityManager(1768): Crashing app skipping ANR: ProcessRecord{40a1b188 4335:com.example.nfc/10003} keyDispatchingTimedOut 02-19 10:07:21.428: W/ActivityManager(1768): Launch timeout has expired, giving up wake lock! 02-19 10:07:21.908: W/ActivityManager(1768): Activity idle timeout for HistoryRecord{40a1b7d8 com.example.nfc/.Buy} 02-19 10:07:26.963: I/touchd(1518): 'ab8500_usb' is online 02-19 10:07:26.963: I/touchd(1518): handling_uevent: event is 1 </code></pre> <p><strong>Edit</strong></p> <p>This is line 117:</p> <pre><code>DeleteCheckedItem(checkedItemPosition); </code></pre> <p>and this is the method's body:</p> <pre><code>private void DeleteCheckedItem(int chkPosition) { String strName=goods.get(chkPosition).get(GOOD_NAME); String strPrice=goods.get(chkPosition).get(GOOD_UNITPRICE); String strQuantity=goods.get(chkPosition).get(QUANTITY); String whereClause = "GOOD_NAME = ? AND GOOD_UNITPRICE= ? AND QUANTITY= ?"; String[] whereArgs = {strName,strPrice,strQuantity}; database.delete(TABLE_NAME, whereClause, whereArgs); } </code></pre>
    singulars
    1. This table or related slice is empty.
    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.
 

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