您好我是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”以便我可以跟踪这些值,但它没有用(在我输入值后运行此模拟器时它只显示“你的总数是:”而没有别的)。谢谢提前,请帮助我。
答案 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);