Android   发布时间:2022-04-01  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了android – 在横向模式下强制关闭,但在纵向中不强制关闭大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

我有一个应用程序,它显示运行时的项目列表.当用户按下按钮时,应删除所有选定的项目(选择由@R_772_10943@kBox确定).在纵向模式下一切正常,但是当行数大于3时切换到横向模式时,按下删除按钮会获得强制关闭异常,我无法打印堆栈跟踪.如果有3行或更少行,它可以完美运行!
我已经为布局(纵向)和布局 – 目录编写了布局.代码和布局如下:

这是删除按钮的处理程序:

   Button deleteGoods=(Button)findViewById(R.id.deleteSELEctedGoodsButton);
   deleteGoods.setOnClickListener(new OnClickListener() {

        public void onClick(View v) {
            @R_772_10943@kBox cbx = (@R_772_10943@kBox)listView.findViewById(R.id.ChkOrder);
            int firstPosition = listView.getFirstVisiblePosition();
                for (int i = firstPosition; i < listView.getCount(); i++) {

                    View v1 = listView.getChildAt(i);

                    cbx = (@R_772_10943@kBox)v1.findViewById(R.id.ChkOrder);
                    if(cbx.ischecked())
                        @R_772_10943@kedItemPosition=i;                  
                }
                try {

                    delete@R_772_10943@kedItem(@R_772_10943@kedItemPosition);

                    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();
                }


        }

    });

这是横向模式下的布局:

<?xml version="1.0" encoding="utf-8"?>

    <RelativeLayout
        xmlns:android="http://scheR_480_11845@as.android.com/apk/res/android"
        android:orientation="vertical"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:BACkground="#000000" >
        <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" />
        <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" />
        <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" />
        <TextView 
            android:id="@+id/aa"
            android:layout_height="wrap_content"
            android:layout_width="wrap_content"
            android:layouT_Below="@id/CancelButton" />

        <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" />
         <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" />
         <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" />
         <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" />

         <TextView
            android:id="@+id/@R_186_10586@lPriCETextview"
            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" />

    </RelativeLayout>

这是我得到的例外:

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

编辑

这是第117行:

delete@R_772_10943@kedItem(@R_772_10943@kedItemPosition);

这是方法的主体:

private void delete@R_772_10943@kedItem(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);
}

解决方法:

@R_772_10943@kedItemPosition是int还是Integer?

我的猜测是它被初始化为null的整数.

旋转时,将重新创建活动,并将@R_772_10943@kedItemPosition重新初始化为null.

然后输入for循环,但没有选中@R_772_10943@kBox视图,因此@R_772_10943@kedItemPosition仍然为null.

您尝试在Null上调用deleteItem@R_772_10943@ked,而它期望一个原始int和voila:NullPointerException.

解决方案:将@R_772_10943@kedItemPosition初始化为0.

大佬总结

以上是大佬教程为你收集整理的android – 在横向模式下强制关闭,但在纵向中不强制关闭全部内容,希望文章能够帮你解决android – 在横向模式下强制关闭,但在纵向中不强制关闭所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: