码迷,mamicode.com
首页 > 移动开发 > 详细

android程序异常中止

时间:2015-06-12 15:13:29      阅读:171      评论:0      收藏:0      [点我收藏+]

标签:java android

package yjm.com.five;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

/**
 * Created by yjm18 on 2015/6/10.
 */
public class LoginActivity extends Activity implements View.OnClickListener {


    private EditText mETLoginNameValue;
    private EditText mETLoginPasswordValue;
    private Button mBtn_login;
    private Button mBtn_register;
    private Toast toast;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.login);
    }


    //初始化view视图
    @Override
    public void setContentView(int layoutResID) {
        if(layoutResID==R.layout.login){
            super.setContentView(layoutResID);
            initData_login();
        }
        if(layoutResID==R.layout.main_ui_bak){
            super.setContentView(layoutResID);

        }
    }

    //初始化 main_ui_bak.xml入口
    protected void initData_main_ui_bak(){


    }

    //初始化login_xml入口
    public void initData_login() {
        initView_Login();
        initClickListenerRegister_login();
    }

    //初始化login_xml 里面的控件
    public void initView_Login() {
        mETLoginNameValue = (EditText) findViewById(R.id.EditText_loginName_value);
        mETLoginPasswordValue = (EditText) findViewById(R.id.EditText_loginPassword_value);
        mBtn_login = (Button) findViewById(R.id.btn_login);
        mBtn_register = (Button) findViewById(R.id.btn_register);

        mETLoginNameValue = (EditText) findViewById(R.id.EditText_loginName_value);
        mETLoginPasswordValue = (EditText) findViewById(R.id.EditText_loginPassword_value);
        mBtn_login = (Button) findViewById(R.id.btn_login);
        mBtn_register = (Button) findViewById(R.id.btn_register);


    }

    //注册login_xml里面的控件监听
    public void initClickListenerRegister_login() {
        mBtn_login.setOnClickListener(this);
        mBtn_register.setOnClickListener(this);
        mBtn_login.setOnClickListener(this);
        mBtn_register.setOnClickListener(this);
    }

    @Override
    public void onClick(View viewControl) {

        // login_xml控件获取
        if (viewControl.getId() == R.id.btn_login) {
            if (mETLoginNameValue.getText().toString().equals("shaqiang") && mETLoginPasswordValue.getText().toString().equals("123456")) {
                toast = Toast.makeText(this, "登陆成功,进行跳转...", Toast.LENGTH_SHORT);
                toast.show();
                Intent intent = new Intent();
//                intent.setClass(this,MainUIActivity.class);
//                this.startActivity(intent);
//                finish();
                setContentView(R.layout.main_ui_bak);

            } else {
                toast = Toast.makeText(this, "用户名或密码错误,请重新输入..", Toast.LENGTH_SHORT);
                toast.show();
            }
        }
    }
    //
}


  //初始化view视图
    @Override
    public void setContentView(int layoutResID) {
        if(layoutResID==R.layout.login){
            super.setContentView(layoutResID);
            initData_login();
        }
        if(layoutResID==R.layout.main_ui_bak){
            super.setContentView(layoutResID);
            
              initData_login();
        }
    }

在上面的方法里 main_ui_bak 视图 添加 initData_login();方法异常中止, 因为这个方法运行两次,初期以为是 android在重构 里面的变量两次报错,按照Java 成员变量的引用 是可以随便修改的,所以添加了两次初始化试了一下 ,把方法去掉了,果然不是这个的原因,后来在找了下错误,原来是 setContentView 已经把login.xml视图替换掉了,在引用上面视图的控件初始化 就会报错。

本文出自 “yjm199” 博客,谢绝转载!

android程序异常中止

标签:java android

原文地址:http://yjm199.blog.51cto.com/4408395/1661164

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!