Пока вы довольны форматом a = b
, используемым в файлах свойств, вы получаете 99% пути к своей цели с помощью
Properties properties = new Properties();
try {
properties.load(new FileInputStream(filename));
} catch (IOException e) {
// the file is missing or is not in 'a = b' format
}
Получив переменную key
содержащий строку "a"
от пользователя, результат properties.getProperty ( key )
будет равен "b"
, если файл содержит строку a = b
.Я почти уверен, что вам нужно больше, чем в C ++, чтобы загрузить карту из файла и решить все проблемы с экранированием и кодировкой символов.
Если свойства хранятся в текстовом файле с именем mappings.Свойства в папке assets вашего проекта Android, а не в файловой системе пользователя, тогда вы получите следующее:
final AssetManager am = getResources().getAssets();
final Properties properties = new Properties();
try {
properties.load( am.open("mappings.properties"));
} catch (IOException e) {
// the file is missing or is not in 'a = b' format
}
Этот следующий бит заимствован из Android-учебник , чтобы показать тостовое сообщение с буквой «b», если в поле ввода введено «a».Возможно, именно здесь вы можете получить счетчик строк, поскольку настройка графического интерфейса пользователя с файлами XML и добавление слушателей в Java довольно многословно по сравнению с другими языками.Это связано с синтаксисом Java и XML, а не с виртуальной машиной.
final EditText edittext = (EditText) findViewById(R.id.edittext);
edittext.setOnKeyListener(new OnKeyListener() {
@Override
public boolean onKey(View v, int keyCode, KeyEvent event) {
// If the event is a key-down event on the "enter" button
if ((event.getAction() == KeyEvent.ACTION_DOWN) &&
(keyCode == KeyEvent.KEYCODE_ENTER)) {
// Perform action on key press
Toast.makeText(YourOuterViewClass.this,
properties.getProperty(edittext.getText().toString()),
Toast.LENGTH_SHORT).show();
return true;
}
return false;
}
});