Java 首先获取值,然后在onCreate()方法中检查null

Java 首先获取值,然后在onCreate()方法中检查null,java,android,Java,Android,在myLoginActivity.java中,我从另一个活动中检索数据并放入TextView,同时在onCreate()方法中检查同一个TextView的空值 @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); getWindow().addFlags(WindowManager.LayoutParams.FLAG_K

在myLoginActivity.java中,我从另一个活动中检索数据并放入TextView,同时在onCreate()方法中检查同一个TextView的空值

@Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
        setContentView(R.layout.activity_login);

        btnLogout = (Button) findViewById(R.id.btnLogout);
        btnCamera = (Button) findViewById(R.id.btnCamera);
        btnGallery = (Button) findViewById(R.id.btnGallery);

            txtDeviceID = (TextView) findViewById(R.id.txtDeviceID);
            txtEmailID = (TextView) findViewById(R.id.txtEmailID);      
            txtEvent = (TextView) findViewById(R.id.txtEvent);  
            txtOperative = (TextView) findViewById(R.id.txtOperative);
            txtEventOperator = (TextView) findViewById(R.id.txtEventOperator);

             Intent intent = getIntent();
             deviceID = intent.getStringExtra("deviceID");
             emailID = intent.getStringExtra("emailID");
             event = intent.getStringExtra("name"); 
             operative = intent.getStringExtra("firstName");

             txtDeviceID.setText(deviceID);
             txtEmailID.setText(emailID);
             txtEvent.setText(event);
             Log.d("LA...event", txtEvent.getText().toString());
             txtOperative.setText(operative);
             Log.d("LA...operative", txtOperative.getText().toString());
             txtEventOperator.setText(event + "  " + operative);

             strEvent = txtEvent.getText().toString();
             strOperative = txtOperative.getText().toString();

            // Dialog
                final AlertDialog.Builder adb = new AlertDialog.Builder(this);
                AlertDialog ad = adb.create();

                // new Class DB
                final myDBClass myDb = new myDBClass(this);

                // Save Data
                long saveStatus = myDb.InsertData(
                            txtDeviceID.getText().toString(),
                            txtEmailID.getText().toString(),
                            txtEvent.getText().toString(),
                            txtOperative.getText().toString(),
                            txtEventOperator.getText().toString()
                            );

                if(saveStatus <=  0)
                {
                  ad.setMessage("Error!! ");
                  ad.show();
                  return;
                }   

                // Show Data
                String arrData[] = myDb.SelectData();
                if(arrData != null)
                {
                    txtDeviceID.setText(arrData[1]);
                    txtEmailID.setText(arrData[2]);
                    txtEvent.setText(arrData[3]);
                    txtOperative.setText(arrData[4]);
                    txtEventOperator.setText(arrData[5]);
                }  

                if(txtEvent.getText().toString().equals("") && txtOperative.getText().toString().equals(""))
                {

                    Intent intentCall = new Intent(LoginActivity.this, LicenseListActivity.class);
                    startActivity(intentCall);
                }

     }
我希望LoginActivity.java调用时首先从另一个活动检索数据,然后设置为TextView,然后检查条件

我已经为所有内容编写了代码-以检查条件、检索值以及将值设置为文本视图

@Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
        setContentView(R.layout.activity_login);

        btnLogout = (Button) findViewById(R.id.btnLogout);
        btnCamera = (Button) findViewById(R.id.btnCamera);
        btnGallery = (Button) findViewById(R.id.btnGallery);

            txtDeviceID = (TextView) findViewById(R.id.txtDeviceID);
            txtEmailID = (TextView) findViewById(R.id.txtEmailID);      
            txtEvent = (TextView) findViewById(R.id.txtEvent);  
            txtOperative = (TextView) findViewById(R.id.txtOperative);
            txtEventOperator = (TextView) findViewById(R.id.txtEventOperator);

             Intent intent = getIntent();
             deviceID = intent.getStringExtra("deviceID");
             emailID = intent.getStringExtra("emailID");
             event = intent.getStringExtra("name"); 
             operative = intent.getStringExtra("firstName");

             txtDeviceID.setText(deviceID);
             txtEmailID.setText(emailID);
             txtEvent.setText(event);
             Log.d("LA...event", txtEvent.getText().toString());
             txtOperative.setText(operative);
             Log.d("LA...operative", txtOperative.getText().toString());
             txtEventOperator.setText(event + "  " + operative);

             strEvent = txtEvent.getText().toString();
             strOperative = txtOperative.getText().toString();

            // Dialog
                final AlertDialog.Builder adb = new AlertDialog.Builder(this);
                AlertDialog ad = adb.create();

                // new Class DB
                final myDBClass myDb = new myDBClass(this);

                // Save Data
                long saveStatus = myDb.InsertData(
                            txtDeviceID.getText().toString(),
                            txtEmailID.getText().toString(),
                            txtEvent.getText().toString(),
                            txtOperative.getText().toString(),
                            txtEventOperator.getText().toString()
                            );

                if(saveStatus <=  0)
                {
                  ad.setMessage("Error!! ");
                  ad.show();
                  return;
                }   

                // Show Data
                String arrData[] = myDb.SelectData();
                if(arrData != null)
                {
                    txtDeviceID.setText(arrData[1]);
                    txtEmailID.setText(arrData[2]);
                    txtEvent.setText(arrData[3]);
                    txtOperative.setText(arrData[4]);
                    txtEventOperator.setText(arrData[5]);
                }  

                if(txtEvent.getText().toString().equals("") && txtOperative.getText().toString().equals(""))
                {

                    Intent intentCall = new Intent(LoginActivity.this, LicenseListActivity.class);
                    startActivity(intentCall);
                }

     }
但是每当我调用LoginActivity.java时,它总是先检查条件
,但我想先获取并设置TextView的值,然后在onCreate()方法中检查条件

@Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
        setContentView(R.layout.activity_login);

        btnLogout = (Button) findViewById(R.id.btnLogout);
        btnCamera = (Button) findViewById(R.id.btnCamera);
        btnGallery = (Button) findViewById(R.id.btnGallery);

            txtDeviceID = (TextView) findViewById(R.id.txtDeviceID);
            txtEmailID = (TextView) findViewById(R.id.txtEmailID);      
            txtEvent = (TextView) findViewById(R.id.txtEvent);  
            txtOperative = (TextView) findViewById(R.id.txtOperative);
            txtEventOperator = (TextView) findViewById(R.id.txtEventOperator);

             Intent intent = getIntent();
             deviceID = intent.getStringExtra("deviceID");
             emailID = intent.getStringExtra("emailID");
             event = intent.getStringExtra("name"); 
             operative = intent.getStringExtra("firstName");

             txtDeviceID.setText(deviceID);
             txtEmailID.setText(emailID);
             txtEvent.setText(event);
             Log.d("LA...event", txtEvent.getText().toString());
             txtOperative.setText(operative);
             Log.d("LA...operative", txtOperative.getText().toString());
             txtEventOperator.setText(event + "  " + operative);

             strEvent = txtEvent.getText().toString();
             strOperative = txtOperative.getText().toString();

            // Dialog
                final AlertDialog.Builder adb = new AlertDialog.Builder(this);
                AlertDialog ad = adb.create();

                // new Class DB
                final myDBClass myDb = new myDBClass(this);

                // Save Data
                long saveStatus = myDb.InsertData(
                            txtDeviceID.getText().toString(),
                            txtEmailID.getText().toString(),
                            txtEvent.getText().toString(),
                            txtOperative.getText().toString(),
                            txtEventOperator.getText().toString()
                            );

                if(saveStatus <=  0)
                {
                  ad.setMessage("Error!! ");
                  ad.show();
                  return;
                }   

                // Show Data
                String arrData[] = myDb.SelectData();
                if(arrData != null)
                {
                    txtDeviceID.setText(arrData[1]);
                    txtEmailID.setText(arrData[2]);
                    txtEvent.setText(arrData[3]);
                    txtOperative.setText(arrData[4]);
                    txtEventOperator.setText(arrData[5]);
                }  

                if(txtEvent.getText().toString().equals("") && txtOperative.getText().toString().equals(""))
                {

                    Intent intentCall = new Intent(LoginActivity.this, LicenseListActivity.class);
                    startActivity(intentCall);
                }

     }
@覆盖
创建时的公共void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
getWindow().addFlags(WindowManager.LayoutParams.FLAG\u保持屏幕打开);
setContentView(R.layout.activity\u登录);
btnLogout=(按钮)findViewById(R.id.btnLogout);
btnCamera=(按钮)findViewById(R.id.btnCamera);
btnGallery=(按钮)findViewById(R.id.btnGallery);
txtDeviceID=(TextView)findViewById(R.id.txtDeviceID);
txtEmailID=(TextView)findViewById(R.id.txtEmailID);
txtEvent=(TextView)findViewById(R.id.txtEvent);
txtOperative=(TextView)findViewById(R.id.txtOperative);
txtEventOperator=(TextView)findViewById(R.id.txtEventOperator);
Intent=getIntent();
deviceID=intent.getStringExtra(“deviceID”);
emailID=intent.getStringExtra(“emailID”);
event=intent.getStringExtra(“名称”);
操作=intent.getStringExtra(“名字”);
txtDeviceID.setText(deviceID);
txtEmailID.setText(emailID);
txtEvent.setText(事件);
Log.d(“LA…event”,txtEvent.getText().toString());
txtOperative.setText(可操作);
Log.d(“LA…operative”,txtOperative.getText().toString());
txtEventOperator.setText(事件+“”+可操作);
strEvent=txtEvent.getText().toString();
strOperative=txtOperative.getText().toString();
//对话
final AlertDialog.Builder adb=新建AlertDialog.Builder(此);
AlertDialog ad=adb.create();
//新类数据库
最终myDBClass myDb=新的myDBClass(此);
//保存数据
long saveStatus=myDb.InsertData(
txtDeviceID.getText().toString(),
txtEmailID.getText().toString(),
txtEvent.getText().toString(),
txtOperative.getText().toString(),
txtEventOperator.getText().toString()
);

如果(saveStatus,您可以将您的条件放在onStart方法中

@Override
    public void onStart() {
if(condition)

}

每当创建活动时,先调用Create方法,然后再调用onStart方法。

那么问题出在哪里?我该如何处理?但您尝试先将其设置为Textview,然后进行检查,您能更好地描述您的问题吗?