我在MainActivity.Java中使用for循环而不是在activity_main.Xml中创建了EditText textView按钮。
我想通过EditText对输入的数字进行算术运算。
这是我的代码:
公共类MainActivity扩展AppCompatActivity实现View.OnClickListener { private static final int MY_BUTTON = 9000;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(layout.activity_main);
final LinearLayout my_root = (LinearLayout)findViewById(id.Root);
for(int i =1;i<=5;i++){
LinearLayout layout = new LinearLayout(MainActivity.this);
layout.setOrientation(LinearLayout.HORIZONTAL);
LinearLayout.LayoutParams ParamLayout =
new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.WRAP_CONTENT,
LinearLayout.LayoutParams.WRAP_CONTENT);
ParamLayout.gravity=Gravity.CENTER;
layout.setLayoutParams(ParamLayout);
TextView tvi = new TextView(MainActivity.this);
tvi.setText("Sub " + String.valueOf(i));
tvi.setId(i);
tvi.setLayoutParams(new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.WRAP_CONTENT,
LinearLayout.LayoutParams.WRAP_CONTENT));
tvi.setTextSize(24);
tvi.setPadding(0,0,5,3);
tvi.setMinWidth(300);
tvi.setTypeface(Typeface.defaultFromStyle(Typeface.BOLD),Typeface.ITALIC);
layout.addView(tvi,0);
EditText etCrediti = new EditText(this);
etCrediti.setHint("Credit ");
etCrediti.setMinWidth(300);
etCrediti.setId(50+i);
etCrediti.setMinLines(1);
etCrediti.setMaxLines(1);
layout.addView(etCrediti);
EditText etPointsi = new EditText(this);
etPointsi.setText(" ");
etPointsi.setMinWidth(300);
etPointsi.setId(100+i);
etPointsi.setMinLines(1);
etPointsi.setMaxLines(1);
layout.addView(etPointsi);
my_root.addView(layout);
}
Button btn = new Button(this);
btn.setText("Submit");
btn.setLayoutParams(new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT));
// b.setId(MY_BUTTON);
//btn.setOnClickListener(this);
btn.setGravity(Gravity.CENTER);
btn.setTextSize(24);
btn.setWidth(300);
btn.setId(MY_BUTTON);
btn.setOnClickListener(this);
my_root.addView(btn);
}
答案 0 :(得分:0)
我猜你想做的是一个计算器...... 你必须拥有这两个editTexts和一个按钮。 您还应该为结果使用另一个TextView。 您需要将单击按钮设置为计算函数。
在你的创建集b1和b2到视图editText。 b1 =(EditText)findViewById(R.id.editText1);
然后获取文本值: int n1 = Integer.pharseInt(b1.getText.toString());
然后只需执行calc并设置TextView文本的结果。 findViewById(R.id.textView1).setText(result);
我还添加了以下教程的链接:
https://www.google.co.il/amp/www.androidauthority.com/build-a-calculator-app-721910/amp/
答案 1 :(得分:0)
根据我在Android中使用EditText
的经验,我不得不将数字字符串转换为可以用Java计算的不同类型。
当你期待一个&#39; double&#39;您可以使用以下Java代码段:
EditText myNumericTextfield = ...
...
// fill value of myNumericTextfield
...
double valueOfMyNumericTextfield = 0.0;
try {
valueOfMyNumericTextfield = Double.parseDouble(myNumericTextfield.toString());
} catch (NumberFormatException e) {
System.err.println(e);
throw new Exception(e);
}
...
您还可以将字符串myNumericTextfield
转换为int
或long
。