我想先說我是一個大新手,我只在這方面工作了4天左右,其中包括閱讀很多頁面的java參考書。安卓在程序中跳過代碼行
這個應用程序的目的是從文本文件中獲取信息,然後做它很少的數學,然後返回一個值。我已經在運行android 5.1.1的計算機上的仿真器上工作,但是當我在運行6.0.1的筆記4上運行它時,它只是在調試模式下跳過了代碼行,我不明白爲什麼。
public class MainActivity extends AppCompatActivity implements View.OnClickListener {
TextView output;
EditText food;
EditText block;
EditText ounce;
Button calculate_blocks;
Button calculate_ounces;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//finding elements
output = (TextView) findViewById(R.id.output);
food = (EditText) findViewById(R.id.food);
block = (EditText) findViewById(R.id.blocks);
ounce = (EditText) findViewById(R.id.ounces);
calculate_ounces = (Button) findViewById(R.id.calculate_ounces);
calculate_blocks = (Button) findViewById(R.id.calculate_blocks);
//setting listeners
calculate_blocks.setOnClickListener(this);
calculate_ounces.setOnClickListener(this);
}
@Override
public void onClick(View v) {
final String FILENAME = android.os.Environment.getExternalStorageDirectory().getPath() + "/Foods.txt";
BufferedReader fin = null;
FileReader fr = null;
String currentLine="zeutn", line=null ;
String strfood = food.getText().toString();
double gramsOfNutrientPerOunce=0;
double ounces=0,blocks=0;
try {
ounces = Double.parseDouble(ounce.getText().toString());
} catch(NumberFormatException nfe){
ounces=0;
}
try {
blocks = Double.parseDouble(block.getText().toString());
} catch(NumberFormatException nfe){
blocks=0;
}
//Find refrence value after food in file
try {
File file1 = new File(FILENAME);
file1.createNewFile();
fr = new FileReader(FILENAME);
fin = new BufferedReader(fr);
while ((currentLine = fin.readLine()) != null) {
if ((currentLine.toUpperCase()).equals(strfood.toUpperCase())) {
line = fin.readLine();
fr.close();
fin.close();
} else
output.setText("Add food to file");
}
} catch (IOException e) {
output.setText("Fail");
}
try{
gramsOfNutrientPerOunce=Double.parseDouble(line);
} catch(NumberFormatException nfe){
output.setText("Add food to file");
}
String out;
double tmp;
switch (v.getId()) {
case R.id.calculate_blocks:
tmp = ounces/gramsOfNutrientPerOunce;
out=Double.toString(tmp);
output.setText(out);
break;
case R.id.calculate_ounces:
tmp = blocks*gramsOfNutrientPerOunce;
out=Double.toString(tmp);
output.setText(out);
break;
}
}
}
任何幫助,如果我這樣做都是錯的也是如此,如果您需要了解更多信息或者什麼,我會很樂意提前多提供it.Thank你理解對不起!
發佈錯誤日誌。你什麼意思是跳過線? – Kaushal28