程序启动时有一个全屏界面,1秒后转到登录界面,现在的情况是启动到第一个界面后没有转到登录界面,而是白屏,看了logcat,只有第一个界面的activity运行了,其他的都没有运行,付图:
每一个的Activity的setContentView下面都写了System.out.只有第一个打印了:下面是Manifest.xml配置:
androidManifest.xml
每一个的Activity的setContentView下面都写了System.out.只有第一个打印了:下面是Manifest.xml配置:
androidManifest.xml
private Intent intent; @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.splash);
System.out.println("this is splash part");
startMainActivity();
} private void startMainActivity() {
// TODO Auto-generated method stub
new Handler().postDelayed(new Runnable() { @Override
public void run() {
// TODO Auto-generated method stub
intent = new Intent(SplashActivity.this,Login.class);
startActivity(intent);
SplashActivity.this.finish();
} }, 1000); System.out.println("fault");
}
}
图片最后一行是Login的log!就没有往下打印了,一直停在那
图片最后一行是Login的log!就没有往下打印了,一直停在那
你的login的acivity里面的onCreate方法作了耗时的操作引起了ANR
图片最后一行是Login的log!就没有往下打印了,一直停在那
你的login的acivity里面的onCreate方法作了耗时的操作引起了ANR有什么可行的解决方法
private Button register;
private Button login;
private EditText idText;
private EditText passwordText;
private String username;
private String password;
private CheckBox saveword;
protected void onCreated(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
System.out.println("this is login part");
register = (Button)findViewById(R.id.regist);
saveword = (CheckBox)findViewById(R.id.auto_save_password);
login = (Button)findViewById(R.id.button1);
idText = (EditText)findViewById(R.id.username);
passwordText = (EditText)findViewById(R.id.password);
register.setOnClickListener(new OnClickListener()
{
public void onClick(View v)
{
Intent intent = new Intent();
intent.setClass(Login.this,Resgiter.class);
Login.this.startActivity(intent);
}
});
login.setOnClickListener(new MyButtonListener());
}
class MyButtonListener implements OnClickListener
{
User user = new User();
boolean checked = false;
public void onClick(View v)
{
username = idText.getText().toString();
password = passwordText.getText().toString();
user.setName(username);
user.setPassword(password);
//创建一个DatabaseHelper对象
DatabaseHelper dbHelper = new DatabaseHelper(Login.this);
SQLiteDatabase db = dbHelper.getReadableDatabase();
checked = UserWay.queryDatabase(user, db);
if(checked)
{
finish();
Toast.makeText(Login.this, "登陆成功!", Toast.LENGTH_SHORT).show();
Intent intent = new Intent();
intent.setClass(Login.this, MainActivity.class);
Login.this.startActivity(intent);
}
else
{
finish();
Toast.makeText(Login.this, "账号或密码错误,请重新登录!", Toast.LENGTH_SHORT).show();
Intent intent = new Intent();
intent.setClass(Login.this,Login.class);
Login.this.startActivity(intent);
}
db.close();
}
}
}
图片最后一行是Login的log!就没有往下打印了,一直停在那
你的login的acivity里面的onCreate方法作了耗时的操作引起了ANR有什么可行的解决方法
你把耗时的操作放到thread里面去做,参考以下代码 HandlerThread hanThread = new HandlerThread("test");
hanThread.start();
Handler hander = new Handler(hanThread.getLooper());
hander.post(new Runnable() {
@Override
public void run() {
//do here
}
});
图片最后一行是Login的log!就没有往下打印了,一直停在那
你的login的acivity里面的onCreate方法作了耗时的操作引起了ANR有什么可行的解决方法
你把耗时的操作放到thread里面去做,参考以下代码 HandlerThread hanThread = new HandlerThread("test");
hanThread.start();
Handler hander = new Handler(hanThread.getLooper());
hander.post(new Runnable() {
@Override
public void run() {
//do here
}
});package com.example.login;import android.app.Activity;
import android.content.Intent;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.os.Handler;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.EditText;
import android.widget.Toast;import com.example.pingziyi.MainActivity;
import com.example.pingziyi.R;public class Login extends Activity {
private Button register;
private Button login;
private EditText idText;
private EditText passwordText;
private String username;
private String password;
private CheckBox saveword; private android.os.Handler handler = new Handler(); protected void onCreated(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
System.out.println("this is login part");
register = (Button) findViewById(R.id.regist);
saveword = (CheckBox) findViewById(R.id.auto_save_password);
login = (Button) findViewById(R.id.button1);
idText = (EditText) findViewById(R.id.username);
passwordText = (EditText) findViewById(R.id.password);
login.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
handler.post(tThread);
tThread.start();
}
});
register.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
/*
* Intent intent = new Intent(); intent.setClass(Login.this,
* Resgiter.class); Login.this.startActivity(intent);
*/
handler.post(mThread);
mThread.start();
}
});
} private Thread mThread = new Thread(new Runnable() { @Override
public void run() {
// TODO Auto-generated method stub
Intent intent = new Intent();
intent.setClass(Login.this, Resgiter.class);
Login.this.startActivity(intent);
} });
private Thread tThread = new Thread(new Runnable() {
// class MyButtonListener implements OnClickListener {
@Override
public void run() {
// TODO Auto-generated method stub User user = new User();
boolean checked = false; username = idText.getText().toString();
password = passwordText.getText().toString();
user.setName(username);
user.setPassword(password); // 创建一个DatabaseHelper对象
DatabaseHelper dbHelper = new DatabaseHelper(Login.this);
SQLiteDatabase db = dbHelper.getReadableDatabase();
checked = UserWay.queryDatabase(user, db); if (checked) {
finish();
Toast.makeText(Login.this, "登陆成功!", Toast.LENGTH_SHORT).show();
Intent intent = new Intent();
intent.setClass(Login.this, MainActivity.class);
Login.this.startActivity(intent);
} else {
finish();
Toast.makeText(Login.this, "账号或密码错误,请重新登录!", Toast.LENGTH_SHORT)
.show();
Intent intent = new Intent();
intent.setClass(Login.this, Login.class);
Login.this.startActivity(intent);
}
db.close(); } });
}还是没什么效果
图片最后一行是Login的log!就没有往下打印了,一直停在那
你的login的acivity里面的onCreate方法作了耗时的操作引起了ANR有什么可行的解决方法
你把耗时的操作放到thread里面去做,参考以下代码 HandlerThread hanThread = new HandlerThread("test");
hanThread.start();
Handler hander = new Handler(hanThread.getLooper());
hander.post(new Runnable() {
@Override
public void run() {
//do here
}
});package com.example.login;import android.app.Activity;
import android.content.Intent;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.os.Handler;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.EditText;
import android.widget.Toast;import com.example.pingziyi.MainActivity;
import com.example.pingziyi.R;public class Login extends Activity {
private Button register;
private Button login;
private EditText idText;
private EditText passwordText;
private String username;
private String password;
private CheckBox saveword; private android.os.Handler handler = new Handler(); protected void onCreated(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
System.out.println("this is login part");
register = (Button) findViewById(R.id.regist);
saveword = (CheckBox) findViewById(R.id.auto_save_password);
login = (Button) findViewById(R.id.button1);
idText = (EditText) findViewById(R.id.username);
passwordText = (EditText) findViewById(R.id.password);
login.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
new Thread(new tThread()).start();
/*
handler.post(tThread);
tThread.start();
*/
}
});
register.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
/*
* Intent intent = new Intent(); intent.setClass(Login.this,
* Resgiter.class); Login.this.startActivity(intent);
*/
new Thread(new mThread()).start();
/*
handler.post(mThread);
mThread.start();
*/
}
});
} class mThread implements Runnable { @Override
public void run() {
// TODO Auto-generated method stub
Intent intent = new Intent();
intent.setClass(Login.this, Resgiter.class);
Login.this.startActivity(intent);
} };
class tThread implements Runnable{
// class MyButtonListener implements OnClickListener {
@Override
public void run() {
// TODO Auto-generated method stub User user = new User();
boolean checked = false; username = idText.getText().toString();
password = passwordText.getText().toString();
user.setName(username);
user.setPassword(password); // 创建一个DatabaseHelper对象
DatabaseHelper dbHelper = new DatabaseHelper(Login.this);
SQLiteDatabase db = dbHelper.getReadableDatabase();
checked = UserWay.queryDatabase(user, db); if (checked) {
finish();
Toast.makeText(Login.this, "登陆成功!", Toast.LENGTH_SHORT).show();
Intent intent = new Intent();
intent.setClass(Login.this, MainActivity.class);
Login.this.startActivity(intent);
} else {
finish();
Toast.makeText(Login.this, "账号或密码错误,请重新登录!", Toast.LENGTH_SHORT)
.show();
Intent intent = new Intent();
intent.setClass(Login.this, Login.class);
Login.this.startActivity(intent);
}
db.close(); } }
}
你的工程包名com.example.pingziyi
你的Login和Register的包名是com.example.login,所以找不到的
你将放到工程包的下面就可以了