1

嗨,我对 Android 开发真的很陌生,我只是在开发一个应用程序,它将(在 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”,以便我可以跟踪值,但它没有工作(在模拟器中,当我在输入值后运行它时,它只显示“你的总数是:”而没有别的)。提前致谢,请帮我解决一下这个。

4

6 回答 6

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

这样,您在按下按钮的那一刻拿起文本,而不是在创建时,当它为空时。

于 2013-04-02T13:25:17.263 回答
7

text1 = edittext1.getEditableText().toString().trim();改为使用您的 onClick() 方法。

text1目前,您在加载布局后立即分配。此时,您的 EditText 为空,因此它也获得了一个空值。将它放在 onClick() 方法中将确保它仅在您单击按钮时才获取值。

    button1.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            text1 = edittext1.getEditableText().toString().trim();
            textView1.setText("Your Total is:" + text1);
        }
    });
于 2013-04-02T13:24:57.807 回答
4
 text1 = edittext1.getEditableText().toString().trim();

在 OnClickListener 中编写这些代码,你就明白了。

于 2013-04-02T13:32:44.843 回答
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);
    }
});
于 2013-04-02T13:38:27.093 回答
3

只需更改此行:

textView1.setText("Your Total is:" + edittext1.getText().toString());
于 2013-04-02T13:25:21.170 回答
0

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

 String str = edittext.gettext.tostring;
Textview1.settext(''your total is''+str);
于 2013-04-02T14:01:51.507 回答