以下是我迄今为止所做的:
这是我的主要活动.cs:
using Android.App;
using Android.Widget;
using Android.OS;
using Android.Views.InputMethods;
using Android.Content;
using Android.Views;
namespace App
{
[Activity(Label = "App", MainLauncher = true, Icon = "@drawable/icon")]
public class MainActivity : Activity
{
protected override void OnCreate(Bundle bundle)
{
base.OnCreate(bundle);
SetContentView (Resource.Layout.Main);
Button Login = (Button)FindViewById(Resource.Id.button1);
Login.Click += Login_Click;
}
private void Login_Click(object sender, System.EventArgs e)
{
EditText username = (EditText)FindViewById(Resource.Id.editText1);
EditText password = (EditText)FindViewById(Resource.Id.editText2);
Login(username.Text, password.Text);
//Intent Poziv = new Intent(this, typeof(AFLogcs));
//this.StartActivity(Poziv);
//this.Finish();
}
private void Login(string username, string password)
{
}
public override bool OnTouchEvent(MotionEvent e)
{
InputMethodManager imm = (InputMethodManager)GetSystemService(Context.InputMethodService);
EditText username = (EditText)FindViewById(Resource.Id.editText1);
EditText password = (EditText)FindViewById(Resource.Id.editText2);
//Cisti fokus
username.ClearFocus();
password.ClearFocus();
imm.HideSoftInputFromWindow(username.WindowToken, 0);
return base.OnTouchEvent(e);
}
}
}
我还在c:/wamp64/www/android文件夹中创建了三个php文件,用于连接到wamp服务器上的数据库。
这些文件是:
连接高压
<?php
$db_name = "korisnici";
$mysql_username = "root";
$mysql_password = "";
$server_name = "localhost";
$conn = mysqli_connect($server_name, $mysql_username, $mysql_password,$db_name);
if($conn){
echo "Connection sucessfull";
}
else{
echo "No connection";
}
?>
和Login.php
<?php
require "Conn.php";
$user_name = "Mpro";
$user_pass = "nice";
$mysql_qry = "SELECT* FROM korisnici WHERE korisnik LIKE '$user_name' and sifra LIKE '$user_pass'";
$result = mysqli_query($conn, $mysql_qry);
if(mysqli_num_rows($result) > 0){
echo "Uspjesan login";
}
else{
echo "login not success";
}
现在我的问题是如何从android editTexts传递用户名和密码的数据,并进行身份验证以查看用户是否存在。如果用户存在,则会调出新的活动,并显示该特定用户的另一个表中的用户信息。
此外,一旦获得了这些数据,用户就可以离线登录到他的应用程序,仍然可以看到存储的数据,但在再次连接到wifi后,应用程序将自动检查是否有更新,如果是,应用程序会将其从Wamp中提取并再次存储。
您不必共享数据记忆代码,但请为用户登录共享代码。提前谢谢。
我也使用Web服务登录系统。我使用了Xamarin android(MvvmCross
),它使用了ViewModel
和Node JS
Web Service。因此,很抱歉,我无法帮你传递到另一个活动的代码和登录php
。
然而,我可以分享我是如何做到的。首先,我使用WebRequest
类将用户名和密码传递给web服务。你应该看看。然后,web服务将回复登录凭据是对是错,android应用程序可以使用StreamReader
读取响应。您可以在此处查看WebRequest
的文档。
为了将登录保存为离线目的,我建议您使用ISharedPreferences
类。它将把数据保存在永久存储器中。可以保存在那里的数据是基元数据,例如int
、boolean
、string
、float
和stringset
。使用它,您可以存储boolean
,以检查用户是否已登录(稍后用户注销后需要删除)、用户名和其他所需数据。在这个线程中查看
希望这能有所帮助。祝你的项目好运。