次要活动去的主要活动之前,所有的数据可以输入 [英] Secondary Activity goes the Main Activity before all the data can be input

查看:116
本文介绍了次要活动去的主要活动之前,所有的数据可以输入的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我写了一个可以查看,编辑和创建联系人。当我运行code在模拟器,它可以让我输入名字,但我不能切换到其他的编辑文本,如果我切换模拟器freezes.Even,我唯一能做的就是preSS后退按钮后, 。这里是我的code,请你帮我调试。我是新来的Andr​​oid程序,所有的建议都是值得欢迎的。

 公共类AddNewContact扩展活动实现OnClickListener {
    按钮来保存;
    的EditText新名称,NewPersonalPhone,NewHomePhone,NewOfficePhone;

    @覆盖
    保护无效的onCreate(包savedInstanceState){
        // TODO自动生成方法存根
        super.onCreate(savedInstanceState);
        的setContentView(R.layout.newcontact);
        初始化();
    }

    私人无效初始化(){
        // TODO自动生成方法存根
        保存=(按钮)findViewById(R.id.bSaveContact);
        Save.setOnClickListener(本);
        新名称=(EditText上)findViewById(R.id.newname);
        Newname.setOnClickListener(本);
        NewPersonalPhone =(EditText上)findViewById(R.id.newpersonalphone);
        NewPersonalPhone.setOnClickListener(本);
        NewHomePhone =(EditText上)findViewById(R.id.newhomephone);
        NewHomePhone.setOnClickListener(本);
        NewOfficePhone =(EditText上)findViewById(R.id.newofficephone);
        NewOfficePhone.setOnClickListener(本);

    }

    公共无效的onClick(视图v){
        布尔didItWork = TRUE;
        // TODO自动生成方法存根
        尝试 {
            。字符串n名称= Newname.getText()的toString();
            。字符串npphone = NewPersonalPhone.getText()的toString();
            。字符串nhphone = NewHomePhone.getText()的toString();
            。字符串nophone = NewOfficePhone.getText()的toString();


            DBContact newentry =新DBContact(AddNewContact.this);
            newentry.open();
            newentry.newRow(n名称,npphone,nhphone,nophone);
            newentry.close();

        }赶上(例外五){
            didItWork = FALSE;
            字符串错误= e.toString();
            对话框显示=新的对话框(本);
            display.setTitle(ERROR);
            TextView的文本=新的TextView(本);
            text.setText(错误);
            display.setContentView(文本);
            display.show();
        } 最后 {
            如果(didItWork){
                对话框显示=新的对话框(本);
                display.setTitle(CONTACT得救了!);
                TextView的文本=新的TextView(本);
                text.setText(Sucess);
                display.setContentView(文本);
                display.show();
            // startActivity(新的意向书(CONTACTS.class));
            }
        }
    }

}
 

logcat的

 二月9号至26日:58:35.518:E /窗口管理器(1913年):活动com.example.contactlist.AddNewContact渗漏窗口com.android.internal.policy.impl.PhoneWindow $ DecorView @ 41236e28最初此处添加
2月九日至26日:58:35.518:E /窗口管理器(1913年):android.view.WindowLeaked:活动com.example.contactlist.AddNewContact渗漏窗口com.android.internal.policy.impl.PhoneWindow$DecorView@41236e28这是原本在这里添加
2月九日至26日:58:35.518:E /窗口管理器(1913年):在android.view.ViewRootImpl< INIT>(ViewRootImpl.java:374)
2月九日至26日:58:35.518:E /窗口管理器(1913年):在android.view.WindowManagerImpl.addView(WindowManagerImpl.java:292)
2月九日至26日:58:35.518:E /窗口管理器(1913年):在android.view.WindowManagerImpl.addView(WindowManagerImpl.java:224)
2月九日至26日:58:35.518:E /窗口管理器(1913年):在android.view.WindowManagerImpl $ CompatModeWrapper.addView(WindowManagerImpl.java:149)
2月九日至26日:58:35.518:E /窗口管理器(1913年):在android.view.Window $ LocalWindowManager.addView(Window.java:547)
2月九日至26日:58:35.518:E /窗口管理器(1913年):在android.app.Dialog.show(Dialog.java:277)
2月九日至26日:58:35.518:E /窗口管理器(1913年):在com.example.contactlist.AddNewContact.onClick(AddNewContact.java:56)
2月九日至26日:58:35.518:E /窗口管理器(1913年):在android.view.View.performClick(View.java:4084)
2月九日至26日:58:35.518:E /窗口管理器(1913年):在android.view.View.onKeyUp(View.java:7669)
2月九日至26日:58:35.518:E /窗口管理器(1913年):在android.widget.TextView.onKeyUp(TextView.java:5382)
2月九日至26日:58:35.518:E /窗口管理器(1913年):在android.view.KeyEvent.dispatch(KeyEvent.java:2633)
2月九日至26日:58:35.518:E /窗口管理器(1913年):在android.view.View.dispatchKeyEvent(View.java:7086)
2月九日至26日:58:35.518:E /窗口管理器(1913年):在android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1358)
2月九日至26日:58:35.518:E /窗口管理器(1913年):在android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1358)
2月九日至26日:58:35.518:E /窗口管理器(1913年):在android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1358)
2月九日至26日:58:35.518:E /窗口管理器(1913年):在android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1358)
2月九日至26日:58:35.518:E /窗口管理器(1913年):在com.android.internal.policy.impl.PhoneWindow $ DecorView.superDispatchKeyEvent(PhoneWindow.java:1892)
2月九日至26日:58:35.518:E /窗口管理器(1913年):在com.android.internal.policy.impl.PhoneWindow.superDispatchKeyEvent(PhoneWindow.java:1369)
2月九日至26日:58:35.518:E /窗口管理器(1913年):在android.app.Activity.dispatchKeyEvent(Activity.java:2356)
2月九日至26日:58:35.518:E /窗口管理器(1913年):在com.android.internal.policy.impl.PhoneWindow $ DecorView.dispatchKeyEvent(PhoneWindow.java:1819)
2月九日至26日:58:35.518:E /窗口管理器(1913年):在android.view.ViewRootImpl.deliverKeyEventPostIme(ViewRootImpl.java:3575)
2月九日至26日:58:35.518:E /窗口管理器(1913年):在android.view.ViewRootImpl.deliverKeyEvent(ViewRootImpl.java:3531)
2月九日至26日:58:35.518:E /窗口管理器(1913年):在android.view.ViewRootImpl.deliverInputEvent(ViewRootImpl.java:3113)
2月九日至26日:58:35.518:E /窗口管理器(1913年):在android.view.ViewRootImpl.doProcessInputEvents(ViewRootImpl.java:4153)
2月九日至26日:58:35.518:E /窗口管理器(1913年):在android.view.ViewRootImpl.enqueueInputEvent(ViewRootImpl.java:4132)
2月九日至26日:58:35.518:E /窗口管理器(1913年):在android.view.ViewRootImpl $ ViewRootHandler.handleMessage(ViewRootImpl.java:2930)
2月九日至26日:58:35.518:E /窗口管理器(1913年):在android.os.Handler.dispatchMessage(Handler.java:99)
2月九日至26日:58:35.518:E /窗口管理器(1913年):在android.os.Looper.loop(Looper.java:137)
2月九日至26日:58:35.518:E /窗口管理器(1913年):在android.app.ActivityThread.main(ActivityThread.java:4745)
2月九日至26日:58:35.518:E /窗口管理器(1913年):在java.lang.reflect.Method.invokeNative(本机方法)
2月九日至26日:58:35.518:E /窗口管理器(1913年):在java.lang.reflect.Method.invoke(Method.java:511)
2月九日至26日:58:35.518:E /窗口管理器(1913年):在com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:786)
2月九日至26日:58:35.518:E /窗口管理器(1913年):在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
2月九日至26日:58:35.518:E /窗口管理器(1913年):在dalvik.system.NativeStart.main(本机方法)
 

解决方案

您需要   setOnClickListener()

甚至edittexts?

你为什么要使用 setOnClickListener()上edittexts。有什么特殊的原因?

在试图删除它们,只需要使用 setOnClickListener()的按钮和运行逻辑。 如果您有任何特殊的理由 setOnClickListener()的说明的EditText一次

I have written an to view , edit and create contacts . When I run the code in emulator , it allows me to type the name but I cannot switch to other Edit Text and the emulator freezes.Even if I switch, the only thing I can do is press back button after. here is my code , could you please help me in debugging. I am new to android programming , all suggestions are welcome.

public class AddNewContact extends Activity implements OnClickListener {
    Button Save;
    EditText Newname, NewPersonalPhone, NewHomePhone, NewOfficePhone;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        setContentView(R.layout.newcontact);
        initialize();
    }

    private void initialize() {
        // TODO Auto-generated method stub
        Save = (Button) findViewById(R.id.bSaveContact);
        Save.setOnClickListener(this);
        Newname = (EditText) findViewById(R.id.newname);
        Newname.setOnClickListener(this);
        NewPersonalPhone = (EditText) findViewById(R.id.newpersonalphone);
        NewPersonalPhone.setOnClickListener(this);
        NewHomePhone = (EditText) findViewById(R.id.newhomephone);
        NewHomePhone.setOnClickListener(this);
        NewOfficePhone = (EditText) findViewById(R.id.newofficephone);
        NewOfficePhone.setOnClickListener(this);

    }

    public void onClick(View v) {
        boolean didItWork = true;
        // TODO Auto-generated method stub
        try {
            String nname = Newname.getText().toString();
            String npphone = NewPersonalPhone.getText().toString();
            String nhphone = NewHomePhone.getText().toString();
            String nophone = NewOfficePhone.getText().toString();


            DBContact newentry = new DBContact(AddNewContact.this);
            newentry.open();
            newentry.newRow(nname, npphone, nhphone, nophone);
            newentry.close();

        } catch (Exception e) {
            didItWork = false;
            String error = e.toString();
            Dialog display = new Dialog(this);
            display.setTitle("ERROR");
            TextView text = new TextView(this);
            text.setText(error);
            display.setContentView(text);
            display.show();
        } finally {
            if (didItWork) {
                Dialog display = new Dialog(this);
                display.setTitle("CONTACT SAVED!");
                TextView text = new TextView(this);
                text.setText("Sucess");
                display.setContentView(text);
                display.show();
            //  startActivity(new Intent("CONTACTS.class"));
            }
        }
    }

}

LOGCAT

09-26 02:58:35.518: E/WindowManager(1913): Activity com.example.contactlist.AddNewContact has leaked window com.android.internal.policy.impl.PhoneWindow$DecorView@41236e28 that was originally added here
09-26 02:58:35.518: E/WindowManager(1913): android.view.WindowLeaked: Activity com.example.contactlist.AddNewContact has leaked window com.android.internal.policy.impl.PhoneWindow$DecorView@41236e28 that was originally added here
09-26 02:58:35.518: E/WindowManager(1913):  at android.view.ViewRootImpl.<init>(ViewRootImpl.java:374)
09-26 02:58:35.518: E/WindowManager(1913):  at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:292)
09-26 02:58:35.518: E/WindowManager(1913):  at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:224)
09-26 02:58:35.518: E/WindowManager(1913):  at android.view.WindowManagerImpl$CompatModeWrapper.addView(WindowManagerImpl.java:149)
09-26 02:58:35.518: E/WindowManager(1913):  at android.view.Window$LocalWindowManager.addView(Window.java:547)
09-26 02:58:35.518: E/WindowManager(1913):  at android.app.Dialog.show(Dialog.java:277)
09-26 02:58:35.518: E/WindowManager(1913):  at com.example.contactlist.AddNewContact.onClick(AddNewContact.java:56)
09-26 02:58:35.518: E/WindowManager(1913):  at android.view.View.performClick(View.java:4084)
09-26 02:58:35.518: E/WindowManager(1913):  at android.view.View.onKeyUp(View.java:7669)
09-26 02:58:35.518: E/WindowManager(1913):  at android.widget.TextView.onKeyUp(TextView.java:5382)
09-26 02:58:35.518: E/WindowManager(1913):  at android.view.KeyEvent.dispatch(KeyEvent.java:2633)
09-26 02:58:35.518: E/WindowManager(1913):  at android.view.View.dispatchKeyEvent(View.java:7086)
09-26 02:58:35.518: E/WindowManager(1913):  at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1358)
09-26 02:58:35.518: E/WindowManager(1913):  at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1358)
09-26 02:58:35.518: E/WindowManager(1913):  at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1358)
09-26 02:58:35.518: E/WindowManager(1913):  at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1358)
09-26 02:58:35.518: E/WindowManager(1913):  at com.android.internal.policy.impl.PhoneWindow$DecorView.superDispatchKeyEvent(PhoneWindow.java:1892)
09-26 02:58:35.518: E/WindowManager(1913):  at com.android.internal.policy.impl.PhoneWindow.superDispatchKeyEvent(PhoneWindow.java:1369)
09-26 02:58:35.518: E/WindowManager(1913):  at android.app.Activity.dispatchKeyEvent(Activity.java:2356)
09-26 02:58:35.518: E/WindowManager(1913):  at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchKeyEvent(PhoneWindow.java:1819)
09-26 02:58:35.518: E/WindowManager(1913):  at android.view.ViewRootImpl.deliverKeyEventPostIme(ViewRootImpl.java:3575)
09-26 02:58:35.518: E/WindowManager(1913):  at android.view.ViewRootImpl.deliverKeyEvent(ViewRootImpl.java:3531)
09-26 02:58:35.518: E/WindowManager(1913):  at android.view.ViewRootImpl.deliverInputEvent(ViewRootImpl.java:3113)
09-26 02:58:35.518: E/WindowManager(1913):  at android.view.ViewRootImpl.doProcessInputEvents(ViewRootImpl.java:4153)
09-26 02:58:35.518: E/WindowManager(1913):  at android.view.ViewRootImpl.enqueueInputEvent(ViewRootImpl.java:4132)
09-26 02:58:35.518: E/WindowManager(1913):  at android.view.ViewRootImpl$ViewRootHandler.handleMessage(ViewRootImpl.java:2930)
09-26 02:58:35.518: E/WindowManager(1913):  at android.os.Handler.dispatchMessage(Handler.java:99)
09-26 02:58:35.518: E/WindowManager(1913):  at android.os.Looper.loop(Looper.java:137)
09-26 02:58:35.518: E/WindowManager(1913):  at android.app.ActivityThread.main(ActivityThread.java:4745)
09-26 02:58:35.518: E/WindowManager(1913):  at java.lang.reflect.Method.invokeNative(Native Method)
09-26 02:58:35.518: E/WindowManager(1913):  at java.lang.reflect.Method.invoke(Method.java:511)
09-26 02:58:35.518: E/WindowManager(1913):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)
09-26 02:58:35.518: E/WindowManager(1913):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
09-26 02:58:35.518: E/WindowManager(1913):  at dalvik.system.NativeStart.main(Native Method)

解决方案

Do you need setOnClickListener()

for even edittexts?

why are you trying to use setOnClickListener() on edittexts. Is there any special reason for this?

once try to remove them and just use setOnClickListener() for button and run the logic. If you have any special reason for using setOnClickListener() for edittext explain it once

这篇关于次要活动去的主要活动之前,所有的数据可以输入的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆