我有一個EditText字段代表一個ID號。該字段可以以編程方式填充,使用基於卡片刷卡結果的IDField.setText(String),也可以使用鍵盤手動填充。Android EditText內容爲空,即使顯示文本
一旦文本被填充,兩種方法(基於滑動的自動登錄 - 或基於按鈕單擊的手動 - )都運行相同的登錄腳本。但是,當我去抓住EditText字段的內容時,如果我手動編輯文本,我會返回一個空字符串。如果文本是以編程方式設置的,那麼它完美地工作。
這對我沒有任何意義。 editText.getText()。toString()不會返回文本框中可見的內容嗎?
XML:
<Button
android:id="@+id/btn_swipeCard"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBottom="@+id/signInID"
android:layout_toLeftOf="@+id/textView1"
android:onClick="SignInStudent"
android:text="Swipe ID" />
按鈕初始化:
IDField = (EditText) layout.findViewById (R.id.signInID);
LoginButton = (Button) findViewById(R.id.button1);
LoginButton.setOnClickListener(new OnClickListener() { public void onClick(View v) { SignInStudent(); } });
刷卡:
// displays data from card swiping
private Runnable doUpdateTVS = new Runnable()
{
public void run()
{
try
{
//Grab ID Number
String[] splitMSG = strMsrData.split("=");
//txtIDNumber.setText(splitMSG[2]);
IDField.setText(splitMSG[2]);
StringBuffer hexString = new StringBuffer();
hexString.append("<");
String fix = null;
for (int i = 0; i < msrData.length; i++) {
fix = Integer.toHexString(0xFF & msrData[i]);
if(fix.length()==1)
fix = "0"+fix;
hexString.append(fix);
if((i+1)%4==0&&i!=(msrData.length-1))
hexString.append(' ');
}
hexString.append(">");
myUniMagReader.WriteLogIntoFile(hexString.toString());
SignInStudent();
}
catch(Exception ex)
{
ex.printStackTrace();
}
}
};
登錄邏輯:
public void SignInStudent()
{
String temp = "http://wwww.tempUrl.com/signIn?ID="+ IDField.getText().toString() + "&DeviceId="+KEY;
webView.loadUrl(temp);
}
發佈您的代碼... – Pragnani
請使用您的代碼進行編輯?肯定你在代碼中有一些錯誤.. – SRam
發佈你的佈局xml以及.. – Akhil