在视图ClickListener中删除android崩溃应用程序中的动态添加视图以进行删除

时间:2016-04-21 17:50:21

标签: android dynamic android-view layout-inflater

我想在android布局中实现动态添加和删除视图并在共享首选项中保存更改

一切正常但是当我点击特定视图以删除特定视图时ClickListener出现问题,它崩溃了应用程序,但是在重新启动应用程序后删除了该视图并显示了剩余的行

这是我的代码
任何帮助都会很受欢迎

public void display_contacts()
{
    View.OnClickListener removeListener=new View.OnClickListener()
    {
        public void onClick(View paramAnonymousView)
        {
            TextView removeNum=(TextView)paramAnonymousView.findViewById(R.id.contact_name1);
            if(paramAnonymousView.getId() == R.id.viewId)
            {
                mSettings.Initialize(getApplicationContext());
                mSettings.RemoveFromContactList(removeNum.getText().toString());
                mSettings.SaveSettings();
                LinearLayout displayView = (LinearLayout)mActivity.findViewById(R.id.contacts_view);
                displayView.removeView(paramAnonymousView);
                displayView.invalidate();
            }
        }
    };

    LinearLayout wrapper = (LinearLayout) findViewById(R.id.contacts_view);
    LinearLayout inflatedView;
    mSettings.Initialize(getApplicationContext());
    int i=mSettings.GetContactListCount();
    if(i>0) {
    final   String[] arrayOfStrings2 = mSettings.GetContactListNumber();
    final    String[] arrayOfStrings3 = mSettings.GetContactListName();
        for (int j = 0; j < i; j++) {
            String str = arrayOfStrings2[j];
            if (arrayOfStrings3[j] != null) {
                str = arrayOfStrings3[j] + "(" + arrayOfStrings2[j] + ")";
            }
            inflatedView = (LinearLayout) View.inflate(this, R.layout.allow_deny_row, null);
            ((TextView) inflatedView.findViewById(R.id.contact_name1)).setText(str);
            inflatedView.setId(R.id.viewId);
            wrapper.addView(inflatedView);
            wrapper.invalidate();
            inflatedView.setOnClickListener(removeListener);
        }

    }

}

视图和onClickListener上出现了问题。

提前谢谢

更新:错误日志

01-03 15:46:33.112 17483-17483/com.example.ghaznavi.contacts D/HAWAII_EGL: Set SWAP INTERVAL 0
01-03 15:46:33.112 17483-17483/com.example.ghaznavi.contacts D/HAWAII_EGL: eglCreateWindowSurface() surface: 0x4fc82108, VC surface: 1, Thread: 17483
01-03 15:46:33.112 17483-17483/com.example.ghaznavi.contacts D/HAWAII_EGL: eglMakeCurrent(0x4fc5e2c8, 0x4fc82108, 0x4fc82108) Thread: 17483
01-03 15:46:33.122 17483-17483/com.example.ghaznavi.contacts D/OpenGLRenderer: Enabling debug mode 0
01-03 15:46:52.021 17483-17483/com.example.ghaznavi.contacts D/AndroidRuntime: Shutting down VM
01-03 15:46:52.021 17483-17483/com.example.ghaznavi.contacts W/dalvikvm: threadid=1: thread exiting with uncaught exception (group=0x41b05960)
01-03 15:46:52.031 17483-17483/com.example.ghaznavi.contacts E/AndroidRuntime: FATAL EXCEPTION: main
                                                                               java.lang.NullPointerException
                                                                                   at com.example.ghaznavi.contacts.Contact_main$4.onClick(Contact_main.java:132)
                                                                                   at android.view.View.performClick(View.java:4380)
                                                                                   at android.view.View$PerformClick.run(View.java:18094)
                                                                                   at android.os.Handler.handleCallback(Handler.java:725)
                                                                                   at android.os.Handler.dispatchMessage(Handler.java:92)
                                                                                   at android.os.Looper.loop(Looper.java:137)
                                                                                   at android.app.ActivityThread.main(ActivityThread.java:5279)
                                                                                   at java.lang.reflect.Method.invokeNative(Native Method)
                                                                                   at java.lang.reflect.Method.invoke(Method.java:511)
                                                                                   at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1102)
                                                                                   at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:869)
                                                                                   at dalvik.system.NativeStart.main(Native Method)
01-03 15:47:10.379 17483-17483/com.example.ghaznavi.contacts I/Process: Sending signal. PID: 17483 SIG: 9

0 个答案:

没有答案