没有从EditText获得任何东西

时间:2013-04-02 13:21:38

标签: android android-edittext

您好我是Android开发的新手,我只是在开发一个应用程序take(在EDIT-TEXT中)输入(整数)转换为厘米并显示为普通文本(在文本视图中)。但是我输入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”以便我可以跟踪这些值,但它没有用(在我输入值后运行此模拟器时它只显示“你的总数是:”而没有别的)。谢谢提前,请帮助我。

6 个答案:

答案 0 :(得分:9)

您的代码是正确的,但却被取代了。

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);
    }
});

通过这种方式,您可以在按下按钮的同时拾取文本,而不是在创建时拾取文本。

答案 1 :(得分:7)

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);
        }
    });

答案 2 :(得分:4)

 text1 = edittext1.getEditableText().toString().trim();

在OnClickListener中编写这些代码,就可以了。

答案 3 :(得分:4)

你在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);
    }
});

答案 4 :(得分:3)

只需更改此行:

textView1.setText("Your Total is:" + edittext1.getText().toString());

答案 5 :(得分:0)

尝试这个并且编辑文本值总是在string中。如果你想将编辑文本值分配给整数意味着你有隐藏字符串到整数(只是你的信息)..这里你的问题的答案.. < / p>

 String str = edittext.gettext.tostring;
Textview1.settext(''your total is''+str);