[英]Not getting anything from EditText
嗨,我真的是Android開發的新手,我只是在開發一個應用程序,將takes(在EDIT-TEXT中)輸入(整數)轉換為厘米並顯示為普通文本(在Text-view中)。 但是,無論我輸入到Edit-Text的什么內容,我都無法檢索到它,而我正在發布xml和Java代碼:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/LinearLayout1"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
>
<EditText
android:id="@+id/edittext1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
android:hint="@string/Hint1"
android:inputType="number" />
<Button
android:id="@+id/Convert"
android:text="@string/Convert"
android:layout_width="250dp"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:gravity="center"
android:textSize="30sp"
/>
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/Result"
android:textSize="30sp"
/>
</LinearLayout>
* Java代碼: *
public class MainActivity extends Activity
{
TextView textView1 = null;
EditText edittext1 = null;
int no2 = 0;
int centimeters1 = 0;
String text1 ="ssssss";
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
edittext1 = (EditText) findViewById(R.id.edittext1);
textView1 = (TextView) findViewById(R.id.textView1);
text1 = edittext1.getEditableText().toString().trim();
System.out.print(text1);
System.out.print(".................................................");
centimeters1= no2* 24 ;
Button button1 = (Button) findViewById(R.id.Convert);
button1.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
textView1.setText("Your Total is:" + text1);
}
});
}
我嘗試使用“ system.out.println”來跟蹤值,但沒有用(在仿真器中,輸入值后運行它時,它只顯示“ Your Total Is:”,而沒有其他顯示)。在此先感謝您,請幫我解決一下這個。
您的代碼是正確的,但已被替換。
您無法從EditText
得到任何信息,因為您正在創建它后立即檢查其內容。 該函數被稱為onCreate
的原因是:)
移動這個:
text1 = edittext1.getEditableText().toString().trim();
這里:
button1.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
text1 = edittext1.getEditableText().toString().trim();
textView1.setText("Your Total is:" + text1);
}
});
這樣,您可以在按下按鈕的那一刻而不是在創建時(當它為空時)拾取文本。
移動text1 = edittext1.getEditableText().toString().trim();
改為您的onClick()方法。
目前,您是在加載布局后立即分配text1
。 此時,您的EditText為空,因此它也獲得一個空值。 將其放在onClick()方法中將確保僅在單擊Button時它才能獲取值。
button1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
text1 = edittext1.getEditableText().toString().trim();
textView1.setText("Your Total is:" + text1);
}
});
text1 = edittext1.getEditableText().toString().trim();
將這些代碼編寫在OnClickListener內,就可以了。
在setContentView()之后,您將獲得edittext。 移動您的text1 = edittext1.getEditableText()。toString()。trim(); 按鈕的onclick方法。 因此,當用戶鍵入editext時,單擊按鈕會將值設置為textview。
button1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
text1 = edittext1.getEditableText().toString().trim();
textView1.setText("Your Total is:" + text1);
}
});
只需更改此行:
textView1.setText("Your Total is:" + edittext1.getText().toString());
嘗試這一操作,並且編輯文本值始終位於字符串中。如果要將該編輯文本值分配為整數,則意味着您將隱蔽字符串設置為整數(只是向您提供的信息)。此處為您的問題的答案。
String str = edittext.gettext.tostring;
Textview1.settext(''your total is''+str);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.