簡體   English   中英

沒有從EditText得到任何東西

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM