最近我开始乱用Android Studio并决定制作应用程序。我已经充分利用了我的应用程序,但遇到了一些问题。我需要在变量中记住一个来自用户输入的数字,但我不知道怎么做,我已经尝试过在互联网上找到的解决方案,即使在这里但是我收到了一个错误。 有人可以帮助我一些想法或编辑的代码,我必须在我的应用程序中添加? 这是活动的java代码:
public class calc_medie_teza extends ActionBarActivity implements View.OnClickListener {
EditText adaug_nota;
static final int READ_BLOCK_SIZE = 100;
TextView afisare;
TextView afisare2;
Button calc;
EditText note_nr;
EditText nota_teza;
int suma;
double medie;
double medieteza;
int nr_note = 0;
int notamedie;
int notateza;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_calc_medie_teza);
afisare = (TextView) findViewById(R.id.afisare);
afisare2 = (TextView) findViewById(R.id.afisare2);
calc = (Button) findViewById(R.id.calc);
calc.setOnClickListener(this);
note_nr = (EditText) findViewById(R.id.note_nr);
nota_teza = (EditText) findViewById(R.id.nota_teza);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.menu_calc_medie_teza, menu); // creare meniu
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
int id = item.getItemId(); // meniu
return id == R.id.action_settings || super.onOptionsItemSelected(item);
}
public void onClick(View v) // afisare medie
{
calcul_medie();
}
public void buton_adauga(View v)
{
if(note_nr == )
suma = suma + notamedie;
nr_note = nr_note + 1;
}
public double calcul_medie() // calculul mediei
{
medie = suma / nr_note;
medieteza = ((medie * 3)+ notateza)/4;
return medieteza;
}
以下是活动照片:http://onlypro.ro/img/images/ootllv2f55hnwdgi0xlv.png
基本上,当我按下“Adauga nota”[添加成绩]按钮时,应用程序需要将输入数字添加到变量,然后我必须插入“teza”编号并按下“Calculeaza media”[Calculate] app然后计算calcul_medie()并返回一个十进制数。在“Introduceti notele aici”[在这里添加成绩]和“Adaugata nota”[添加成绩]之间我有一个数字输入文本,同样是在“Introduceti teza aici”[添加论文bere]和“Calculeaza media”[Calculate]之间。我不知道如何存储用户输入的数字,并将其加在“notamedie”变量中。
我希望你理解我的问题。 如果您有任何问题,我会尽快回复。
提前致谢!
答案 0 :(得分:2)
好吧,我想你可能会问如何从UI获取String的输入并将它们转换为Integer / BigDecimal。如果是这样,这里有一些解决方案:
首先,您可以从UI获取字符串:
String input = note_nr.getText()。toString()。trim();
将字符串输入更改为integer / BigDecimal:
int number1 = Integer.parseInt(input);
BigDecimal number2 = new BigDecimal(input);
如果误解了你的问题,请纠正我。感谢。
答案 1 :(得分:1)
我根本不明白这个问题。如果可以,请明确定义问题并使用英语。据我所知,将会有一个Edittext,用户将输入该值。获取活动中的值,然后使用它。
EditText edittext;
editext = (EditText) findViewById(R.id.editext);
String value = edit text.getText().toString(); // the value that the user inputted in String data format
// Here for addition you will need the value in int or decimal for that
int valueInt = Integer.parse(value); // this will be the value in int type
double valueInt = = Double.parseDouble(value); // this will be the value (user inputted) in double data type ( which you will need if you want to use decimal numbers).
答案 2 :(得分:0)
当您按下按钮时,只需按以下方式从edittext中检索适当的值
edittext = (EditText)layout.findViewById(R.id.txtDescription);
String string = edittext.getText().toString();
答案 3 :(得分:0)
检索文本执行此操作
String string = note_nr.getText().toString();
// Converting String to int
int myValue =Integer.parseInt(string);
答案 4 :(得分:0)
我再试一次,但IDE说我用的变量" string"从未使用过,但我已经使用过了。
number1= (EditText) findViewById(R.id.number1);
String number_1 = number1.getText().toString();
number2= (EditText) findViewById(R.id.number2);
String number_2= number2.getText().toString();
答案 5 :(得分:0)
R3muSGFX,您可以发布整个代码吗?
String number_1 = number1.getText()。toString();此行代码仅表示您初始化了一个String变量" number_1"。
你会在应用程序执行数学函数时使用它,就像你在开头写的那样:
public double calcul_medie() { medie = suma / nr_note; medieteza =((medie * 3)+ notateza)/ 4; 返回medieteza; }
但是如果你没有使用" number_1"完全,IDE会暗示你的警告信息 :我用于"字符串"的变量永远不会使用