我尝试使用4个复选框创建一个简单的密码生成应用程序,我之前使用过相同的代码,从C#Winform应用程序中的下一部分代码开始,它的工作非常好。
if(upper.Checked | lower.Checked | number.Checked | symbol.Checked)
但是,在我的Android应用程序中尝试相同的代码时,我在下面的部分中收到错误,指出字符串不正确。
int _len = Convert.ToInt32(txtPassword.Text);
我错过了什么? PS。我是Android的新手,但在
之前完成了一些Winform工作using Android.App;
using Android.Widget;
using Android.OS;
using System;
using System.Linq;
namespace PasswordGenerator
{
[Activity(Label = "PasswordGenerator", MainLauncher = true, Icon = "@mipmap/icon")]
public class MainActivity : Activity
{
CheckBox upper;
CheckBox lower;
CheckBox number;
CheckBox symbol;
TextView txtPassword;
protected override void OnCreate(Bundle savedInstanceState)
{
base.OnCreate(savedInstanceState);
SetContentView(Resource.Layout.Main);
Button button1 = FindViewById<Button>(Resource.Id.btnGenerate);
txtPassword = FindViewById<TextView>(Resource.Id.txtPassword);
upper = FindViewById<CheckBox>(Resource.Id.upper);
lower = FindViewById<CheckBox>(Resource.Id.lower);
number = FindViewById<CheckBox>(Resource.Id.number);
symbol = FindViewById<CheckBox>(Resource.Id.symbol);
button1.Click += (sender, e) => {
string message = string.Empty;
if (upper.Checked | lower.Checked | number.Checked |
symbol.Checked)
{
int _len = Convert.ToInt32(txtPassword.Text);
string _chars = "";
if (upper.Checked) _chars += "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
if (lower.Checked) _chars += "abcdefghijklmnopqrstuvwxyz";
if (number.Checked) _chars += "0123456789";
if (symbol.Checked) _chars += "~!@%$<>^&_-#";
var _rnd = new Random();
var _pass = new string(
Enumerable.Repeat(_chars, _len)
.Select(s => s[_rnd.Next(s.Length)])
.ToArray());
txtPassword.Text = _pass;
}
else
{
message = ("Error: Please select one or more password
options");
}
};
}
}
}
答案 0 :(得分:0)
您需要访问var td, div;
div = document.createElement("div");
div.classList.add("orders_displayed");
if(d){
d.forEach(function(d){
console.log(dt(d.cDD) + " cdd " + d.cDD);
td = document.getElementById(dt(d.cDD));
div.id = d.oID;
div.innerHTML += d.cName;
div.style.backgroundColor = staff(d.staff);
td.appendChild(div);
console.log(staff(d.staff) + " cdd " + d.staff);
console.log(td + " " + td.id);
});
}
的{{1}}媒体资源:Length
但由于txtPassword.Text
已经是int _len = Convert.ToInt32(txtPassword.Text.Length);
,因此您无需转换它;只需将其分配给您的变量:Length
哦,每次点击按钮时请不要实例化新的int
。如果您快速单击该按钮,则每次单击该按钮时,这可能会导致您获得相同的数字。