Android 阵列或其他解决方案
我有这个代码来生成一个文件Android 阵列或其他解决方案,android,Android,我有这个代码来生成一个文件 et_nombre = (EditText) findViewById(R.id.txt_nombre); // name file automatic et_tienda = (EditText) findViewById(R.id.txt_tienda); // Store Out et_destino = (EditText) findViewById(R.id.etDestino); // Store In et_contenido = (EditText)
et_nombre = (EditText) findViewById(R.id.txt_nombre); // name file automatic
et_tienda = (EditText) findViewById(R.id.txt_tienda); // Store Out
et_destino = (EditText) findViewById(R.id.etDestino); // Store In
et_contenido = (EditText) findViewById(R.id.txt_contenido); // Barcode
android.text.format.DateFormat.format("yyyy-MM-dd hh:mm:ss a", new java.util.Date());
long msTime = System.currentTimeMillis();
Date curDateTime = new Date(msTime);
String t_origen=et_tienda.getText().toString();
String t_destino=et_destino.getText().toString();
et_nombre.setText("Traspaso_"+curDateTime+" "+msTime);
但是我想读一行中的几个条形码,并将它们保存在同一个文件中,并且只更改条形码的值,从而遵守格式。 哪个选项正确?为创建数组和循环,或将edittext更改为多行和循环
感谢您的帮助创建一个数组,在大量读取之后,将其写入文件将比每次读取条形码时打开文件并写入文件有更好的性能,但是,有时您必须将数组的内容刷新到文件中,您需要有一个触发器,一个计时器或任何其他能够理解写入文件的正确时间的东西,这就是“挑战”。 因此,写入文件每次读取条形码都比较容易实现,但根据读取条形码的数量,每次打开/写入/关闭文件时可能会出现性能问题。
您还可以将条形码连接成一个字符串,然后在读取完所有内容后将该字符串写入文件。您的问题有点不清楚?现在我得到一个只有一行的文件,最后一行,我想读几本这样的书000000000 1如果我的另一个测试是在编辑文本多行中捕获条形码,但我在尝试在每个条形码的开头和结尾添加变量并生成文件时遇到问题,您不能将编辑文本多行的内容拆分吗?
public void Guardar(View view) {
String nombre = et_nombre.getText().toString(); // EditText nombre fichero generado solo escritura desabilitada
String letra_T = "T"; // valor fijo para cada línea del fichero
String tienda = et_tienda.getText().toString(); // tienda origen se repite en cada línea
int tienda_num = Integer.parseInt(tienda); // tienda origen formato int
String tienda_destino = et_destino.getText().toString(); // tienda destino se repite en cada línea
int tienda_des = Integer.parseInt(tienda_destino); // tienda destino formato int
String contenidos = et_contenido.getText().toString(); // código de barras escaneado uno por línea
String prueba = String.format("%6d" , tienda_num ); // tienda origen con formato definido
String destino = String.format("%6d" , tienda_des ); // tienda destino con formato definido
String barras = String.format("%-25d" , new BigInteger(contenidos)); // código de barras con formato definido
String unidad = "0000000001"; // unidad para cada lectura
String contenido = letra_T + prueba +destino +barras +unidad; // línea correcta
try {
File tarjetaSD = Environment.getExternalStorageDirectory();
Toast.makeText(this, tarjetaSD.getPath(), Toast.LENGTH_SHORT).show();
File rutaArchivo = new File(tarjetaSD.getPath(), nombre);
OutputStreamWriter crearArchivo =new OutputStreamWriter(new FileOutputStream(rutaArchivo));
//OutputStreamWriter crearArchivo = new OutputStreamWriter(openFileOutput(nombre, Activity.MODE_PRIVATE));
crearArchivo.write(contenido);
crearArchivo.flush();
crearArchivo.close();
Toast.makeText(this, "Guardado correctamente", Toast.LENGTH_SHORT).show();
et_nombre.setText("");
et_contenido.setText("");
et_tienda.setText("");
et_destino.setText("");
} catch (IOException e) {
Toast.makeText(this, "No se pudo guardar", Toast.LENGTH_SHORT).show();
}
}
EditText et_contenido; //reading barcode
EditText et_tienda; //Store out
EditText et_Destino; //Store In
Resulting file is correct example
txt_contenido : 99123456789
txt_tienda : 12
etDestino : 25
letra_T = "T" fixed value.
unidad = "0000000001" fixed value.
T 12 2599123456789 0000000001