은 당신이 등록 정보 파일에 사용되는 a = b
형식에 만족, 당신은
Properties properties = new Properties();
try {
properties.load(new FileInputStream(filename));
} catch (IOException e) {
// the file is missing or is not in 'a = b' format
}
제 1, 가지고 한 변수 key
이를 포함하여 목표로하는 방식의 99 %를 얻을 수 문자열 "a"
을 입력하면 파일에 a = b
이 포함 된 경우 properties.getProperty (key)
의 결과는 "b"
과 같습니다. 파일에서 맵을로드하고 모든 이스케이프 및 문자 인코딩 문제를 처리하기 위해 C++에서 그 이상을 필요로한다고 확신합니다. 속성이 텍스트 파일에서 개최하는 경우
이
사용자의 파일 시스템에 비해 안드로이드 프로젝트의 폴더 오히려 mappings.properties에게 자산라고, 당신은 이런 식으로 얻을 :
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
}
편집 상자에 'a'가 입력 된 경우이 다음 비트는 android tutorial에서 빌려서 'b'가 표시된 축배 메시지를 표시합니다. 어쩌면 여기서 XML 파일로 GUI를 설정하고 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;
}
});
Gettysburg 주소는 실제로는 매우 짧습니다. Gettysburg 주소는 ~ 20 행이고 80 개의 char 열과 고정 폭 글꼴입니다. –
또한, 나는 900 LOC를 가진 SO에 대한이 가정 된 대답을 원합니다. 나는 그것을 찾을 수없는 것 같아 ... –
파일에서 물건을 추출하고 (Anon의 답변 참조) HashMap을 사용하는 것처럼 들립니다. – Rooke