我已经阅读了大量的问题,但无法找到有效的答案。无论如何,我是android / java编程的新手,并且无法获取我的按钮onClick来获取我的EditText内容并相应地使用它们(?)我认为是我的问题,继承我的代码
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
public class Fittings extends Activity implements OnClickListener{
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Button go = (Button)findViewById(R.id.GoButton);
go.setOnClickListener(this);
}
public void onClick(View v) {
EditText circum = (EditText)findViewById(R.id.CtoD);
int C = Integer.parseInt(circum.getText().toString());
TextView CtoDAnswer = (TextView)findViewById(R.id.CtoDAnswer);
CtoDAnswer.setText((int) (C * 0.3183));
}
}
答案 0 :(得分:2)
您正在使用CtoDAnswer.setText((int) (C * 0.3183));
,它不会添加具有该数字的字符串,但会向其添加具有该ID的资源。由于您没有字符串资源c * 0.3183,因此无法得到正确的答案。
使用CtoDAnswer.setText(Integer.toString(C * 0.3183));
请在此处查看该方法的API参考:http://developer.android.com/reference/android/widget/TextView.html#setText%28int%29
作为第二条评论(这与您的问题无关,但是有关良好做法和应用效率的建议):每次点击按钮时都不要给资源充气,但要在onCreate中充气并使用类字段存储它。即:
EditText circum;
//
public void onCreate(Bundle savedInstanceState) {
circum = (EditText)findViewById(R.id.CtoD);
//
public void onClick(View v) {
int C = Integer.parseInt(circum.getText().toString());
答案 1 :(得分:0)
我认为您只需要将@Override
添加到方法onClick(View v )
中,如下所示:
@Override
public void onClick(View v){
//do stuff
EditText circum = (EditText)findViewById(R.id.CtoD);
int C = Integer.parseInt(circum.getText().toString());
TextView CtoDAnswer = (TextView)findViewById(R.id.CtoDAnswer);
CtoDAnswer.setText(Integer.toString(C * 0.3183));//this will Fix the problem
String txtCentent = myEditText.getText():
Log.i("Content EditText"," Content = "+txtContent);
}
最佳实践:
如果你在方法onCreate
中获得所有视图会更好,因为每次单击按钮时,你都会尝试按ID查找视图,因此它会有某种重复。
答案 2 :(得分:0)
public void onClick(View v) {
EditText circum = (EditText)findViewById(R.id.CtoD);
double C = Integer.parseInt(circum.getText().toString());
TextView CtoDAnswer = (TextView)findViewById(R.id.CtoDAnswer);
double answer = (C * 0.3183);
CtoDAnswer.setText(": " + answer);
是我想出来的,但是根据建议,一些东西会被移动,谢谢!