Android 逐行读取文本文件并与editText中的getText进行比较的转换器
我对应用程序开发非常感兴趣。但我两个月前才开始工作,所以我没有经验。。。。我试着为自己制作一个翻译应用程序。我有一个用于输入的EditText和用于输出的TextView。其思想是从EditText中读取,在文本文档中逐行搜索行号,如 例如:Android 逐行读取文本文件并与editText中的getText进行比较的转换器,android,file-io,android-edittext,Android,File Io,Android Edittext,我对应用程序开发非常感兴趣。但我两个月前才开始工作,所以我没有经验。。。。我试着为自己制作一个翻译应用程序。我有一个用于输入的EditText和用于输出的TextView。其思想是从EditText中读取,在文本文档中逐行搜索行号,如 例如: 苹果-阿菲尔 汽车 然后找到单词并将翻译后的单词带到textView 例如: 编辑文字是:苹果 找到的单词Textview是:Apfel 如果单词未找到,则生成TextView错误消息 我有一个想法,为空文本创建一个警报对话框 “eingabe”是Edit
public void sucheErgebnis() throws IOException{
final Context context = DeutschActivity.this;
final String str;
final String eingabe = txtEingabe.getText().toString();
StringBuffer buf = new StringBuffer();
InputStream is = this.getResources().getAssets().open("dictionary.rtf");
BufferedReader reader = new BufferedReader(new InputStreamReader(is));
btnSuch = (Button)findViewById(R.id.btnSuch);
btnSuch.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(Objects.equals(eingabe, "")){
new AlertDialog.Builder(context)
.setTitle("Dikkat")
.setMessage("Arama alani bos kalamaz!")
.setPositiveButton(android.R.string.yes, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
txtEingabe.setSelection(0);
}
})
.setIcon(android.R.drawable.ic_dialog_alert).show();
}
else{
}
}
});
}
我已经编写了这段代码,它将通读存储在asset文件夹中的文件(如您提到的格式),并返回翻译后的单词:
public class MainActivity extends AppCompatActivity {
EditText txtEingabe;
Button btnSuch;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
txtEingabe = (EditText)findViewById(R.id.txtEingabe);
btnSuch = (Button)findViewById(R.id.btnSuch);
try {
sucheErgebnis();
} catch (IOException e) {
e.printStackTrace();
}
}
public void sucheErgebnis() throws IOException {
final Context context = MainActivity.this;
final String str;
StringBuffer buf = new StringBuffer();
btnSuch.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String eingabe = txtEingabe.getText().toString().trim();
if(eingabe.equals("")){
new AlertDialog.Builder(context)
.setTitle("Dikkat")
.setMessage("Arama alani bos kalamaz!")
.setPositiveButton(android.R.string.yes, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
txtEingabe.setSelection(0);
}
})
.setIcon(android.R.drawable.ic_dialog_alert).show();
}
else{
String translatedWord = FileReaderFromAssets.read(context, eingabe);
if(!translatedWord.equals("")){
txtEingabe.setText(translatedWord);
}
else{
// write your code here if that word not present in the rtf file
}
}
}
});
}
以下是搜索文件并返回匹配词“”的方法,如果未找到匹配项:
public class FileReaderFromAssets {
public static String read(Context context, String word){
String translatedWord = "";
BufferedReader reader = null;
try {
String[] line;
reader = new BufferedReader(
new InputStreamReader(context.getAssets().open("dictionary.rtf")));
// do reading, usually loop until end of file reading
String mLine;
while ((mLine = reader.readLine()) != null) {
line = mLine.split("-");
String temp= line[0].trim();
if(temp.equalsIgnoreCase(word.trim())){
translatedWord = line[1].trim();
break;
}
}
return translatedWord;
} catch (Exception e) {
return translatedWord;
}
finally{
try{
reader.close();
}catch(IOException ex){
}
}
}
}
首先,非常感谢。代码运行得很好,但我不明白当字典中不存在单词时,错误反馈放在哪里。rtfis读取器关闭后的最后一次尝试捕获中出现“如果”是否正确?@bunkar我已经更新了代码。试试看,希望能解决这个问题。再次感谢你。你救了我一个晚上。现在我可以实现我的列表了。我只在else语句txtergebnis.setText(“找不到单词”)中编写代码;