我对App Development非常感兴趣。但是我只在两个月前开始,所以我没有经验......我试着为我自己制作一个小翻译应用程序。我有一个用于输入的EditText和用于输出的TextView。想法是从EditText读取,在文本文档中逐行搜索行号 例如:
然后找到单词并将翻译后的单词带到textView 例如:
EditText字是:Apple 发现这个词Textview是:Apfel
如果单词未成立,则生成TextView错误消息。
我有一个想法,为空EditText制作警报对话框 “eingabe”是我在EditText中的文本值 所以我想做的是,Method查看EditText并从那里获取文本。当Field为空时,它会以AlertDialog的形式出现错误消息。如果该字段不为空,则Method将获取Value并将其与我的Assets文件夹中保存的Dictionary进行比较。这就是为什么需要一个InputStream和一个Reader!但我不知道我是如何为代码编写正确的语法。
这是我的完整方法 eingabe意味着EditText
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{
}
}
});
}
答案 0 :(得分:0)
我已编写此代码,该代码将读取存储在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){
}
}
}
}