Android 不移动到下一个活动
在我的应用程序登录表单中显示Hi,用户名和密码检查数据库中是否存在用户名和密码。如果存在,则表示显示找到的一个文本消息用户,我希望移动到下一个活动。否则,未找到此类用户 现在,单击“登录”按钮,它将显示已找到的用户,而不是移动到下一个活动 谁能帮我解决这个问题 Login.javaAndroid 不移动到下一个活动,android,android-activity,Android,Android Activity,在我的应用程序登录表单中显示Hi,用户名和密码检查数据库中是否存在用户名和密码。如果存在,则表示显示找到的一个文本消息用户,我希望移动到下一个活动。否则,未找到此类用户 现在,单击“登录”按钮,它将显示已找到的用户,而不是移动到下一个活动 谁能帮我解决这个问题 Login.java public class Login extends Activity { Button login; private static final Pattern USERNAME_PATTERN
public class Login extends Activity {
Button login;
private static final Pattern USERNAME_PATTERN = Pattern
.compile("[a-zA-Z0-9]{1,250}");
private static final Pattern PASSWORD_PATTERN = Pattern
.compile("[a-zA-Z0-9+_.]{4,16}");
EditText usname,pword;
TextView tv;
String username,password;
HttpPost httppost;
StringBuffer buffer;
String data="";
HttpResponse response;
HttpClient httpclient;
CheckBox mCbShowPwd;
List<NameValuePair> nameValuePairs;
ProgressDialog dialog = null;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.login);
login = (Button)findViewById(R.id.login);
usname = (EditText)findViewById(R.id.username);
pword= (EditText)findViewById(R.id.password);
tv = (TextView)findViewById(R.id.tv);
mCbShowPwd = (CheckBox) findViewById(R.id.cbShowPwd);
mCbShowPwd.setOnCheckedChangeListener(new OnCheckedChangeListener() {
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if (!isChecked) {
pword.setTransformationMethod(PasswordTransformationMethod.getInstance());
} else {
pword.setTransformationMethod(HideReturnsTransformationMethod.getInstance());
}
}
});
login.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
String username = usname.getText().toString();
String password = pword.getText().toString();
if (username.equals("") || password.equals("")) {
if (username.equals("")) {
Toast.makeText(Login.this, "ENTER USERNAME",
Toast.LENGTH_LONG).show();
}
if (password.equals("")) {
Toast.makeText(Login.this, "ENTER PASSWORD",
Toast.LENGTH_LONG).show();
}
} else if (!CheckUsername(username) && !CheckPassword(password)){
Toast.makeText(Login.this, "ENTER VALID USERNAME & PASSWORD",
Toast.LENGTH_LONG).show();
}
else{
final String queryString = "username=" + username + "&password="
+ password;
final String data = DatabaseUtility.executeQueryPhp("login",queryString);
System.out.println("data :: "+data);
tv.setText("Response from PHP : " + data);
if(data.equalsIgnoreCase("User Found"))
{
Toast.makeText(Login.this,"Login Success", Toast.LENGTH_SHORT).show();
Intent i = new Intent(Login.this, Home.class);
startActivity(i);
}
else
{
Toast.makeText(getApplicationContext(),"User not found, check query", Toast.LENGTH_SHORT).show();
}
}
}
});
}
private boolean CheckPassword(String password) {
return PASSWORD_PATTERN.matcher(password).matches();
}
private boolean CheckUsername(String username) {
return USERNAME_PATTERN.matcher(username).matches();
}
}
公共类登录扩展活动{
按钮登录;
私有静态最终模式USERNAME\u Pattern=Pattern
.编译(“[a-zA-Z0-9]{1250}”);
私有静态最终模式密码\u Pattern=Pattern
.编译(“[a-zA-Z0-9+.]{4,16}”);
编辑文本usname,pword;
文本视图电视;
字符串用户名、密码;
HttpPost-HttpPost;
字符串缓冲区;
字符串数据=”;
HttpResponse响应;
HttpClient-HttpClient;
复选框mCbShowPwd;
列出nameValuePairs;
ProgressDialog=null;
@凌驾
创建时的公共void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.login);
login=(按钮)findviewbyd(R.id.login);
usname=(EditText)findViewById(R.id.username);
pword=(EditText)findViewById(R.id.password);
tv=(TextView)findviewbyd(R.id.tv);
mCbShowPwd=(复选框)findviewbyd(R.id.cbShowPwd);
setOnCheckedChangeListener(新的OnCheckedChangeListener()){
检查更改后的公共无效(复合按钮视图,布尔值已检查){
如果(!已检查){
setTransformationMethod(PasswordTransformationMethod.getInstance());
}否则{
setTransformationMethod(HideReturnsTransformationMethod.getInstance());
}
}
});
login.setOnClickListener(新的OnClickListener(){
@凌驾
公共void onClick(视图v){
字符串username=usname.getText().toString();
字符串密码=pword.getText().toString();
if(username.equals(“”)| | password.equals(“”){
if(username.equals(“”){
Toast.makeText(Login.this,“输入用户名”,
Toast.LENGTH_LONG).show();
}
if(密码等于(“”){
Toast.makeText(Login.this,“输入密码”,
Toast.LENGTH_LONG).show();
}
}如果(!CheckUsername(username)&&!CheckPassword(password)){
Toast.makeText(Login.this,“输入有效的用户名和密码”,
Toast.LENGTH_LONG).show();
}
否则{
最后一个字符串queryString=“username=”+username+“&password=”
+密码;
最终字符串数据=DatabaseUtility.executeQueryPhp(“登录”,查询字符串);
System.out.println(“数据::”+数据);
tv.setText(“来自PHP的响应:+数据);
if(data.equalsIgnoreCase(“用户找到”))
{
Toast.makeText(Login.this,“Login Success”,Toast.LENGTH_SHORT.show();
意图i=新意图(Login.this,Home.class);
星触觉(i);
}
其他的
{
Toast.makeText(getApplicationContext(),“未找到用户,请检查查询”,Toast.LENGTH\u SHORT.show();
}
}
}
});
}
私有布尔校验密码(字符串密码){
返回密码\u PATTERN.matcher(PASSWORD.matches();
}
私有布尔校验用户名(字符串用户名){
返回USERNAME_PATTERN.matcher(USERNAME.matches();
}
}
我想你失踪了
<activity
android:name="package_name.Home"></activity>
我认为你在这里犯了错误: if(data.equalsIgnoreCase(“用户找到”)){ 代替getApplicationContext()写入: if(data.equalsIgnoreCase(“用户找到”)){
您是否在AndroidManifest.xml中定义了Home活动?
Intent i=new Intent(Login.this,Home.class)
试试看。在AndroidManifest.xml中添加了yes。是否有任何错误?如果有,请发布logcat跟踪。在其他条件中没有错误。如果条件不存在,我编写了一个working@user3436185您必须添加有问题的logcat详细信息。您是否能够看到登录成功的toast全文?@user3436185然后数据变量不是“User Found”。您应该首先检查数据变量值,System.out.println(“数据::”+data);
以上的if条件。如果条件不显示任何内容,则仅显示else条件。您可以帮助我代码中的else条件在何处吗?使用我从答案中编辑的代码,然后再次检查toast。
System.out.println("data :: "+data);
if(data.equalsIgnoreCase("User Found"))
{
Toast.makeText(getApplicationContext(),"Login Success", Toast.LENGTH_SHORT).show();
Intent i = new Intent(getApplicationContext(), Home.class);
startActivity(i);
}
else
{
Toast.makeText(getApplicationContext(),"User not found, check query", Toast.LENGTH_SHORT).show();
}
Toast.makeText(getApplicationContext(),"Login Success", Toast.LENGTH_SHORT).show();
Intent i = new Intent(getApplicationContext(), Home.class);
startActivity(i);
}
Toast.makeText(Login.this,"Login Success", Toast.LENGTH_SHORT).show();
Intent i = new Intent(getApplicationContext(), Home.class);
startActivity(i);