Mal*_*uri 1 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>
Run Code Online (Sandbox Code Playgroud)
*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);
}
});
}
Run Code Online (Sandbox Code Playgroud)
我尝试使用"system.out.println",以便我可以跟踪值,但它没有工作(在模拟器中,当我输入值后运行它只显示"你的总数是:"而没有别的).谢谢,提前,请帮我解决一下这个.
你的代码是正确的,但却被取代了.
你没有得到任何东西,EditText因为你在创建后立即检查它的内容.调用该函数onCreate的原因是:)
移动这个:
text1 = edittext1.getEditableText().toString().trim();
Run Code Online (Sandbox Code Playgroud)
这里:
button1.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
text1 = edittext1.getEditableText().toString().trim();
textView1.setText("Your Total is:" + text1);
}
});
Run Code Online (Sandbox Code Playgroud)
这样,您可以在按下按钮时获取文本,而不是在创建时获取文本,当它为空时.
移动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);
}
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
291 次 |
| 最近记录: |