이 .xml 파일에 국가 및 해당 국가 코드가 들어 있습니다. XML을 구문 분석하여 Android의 AlertDialog에 표시하십시오.
<?xml version="1.0" encoding="UTF-8"?>
<landen>
<land>
<naam>Afghanistan</naam>
<code>AF</code>
</land>
<land>
<naam>Albani�</naam>
<code>AL</code>
</land>
<land>
<naam>Algerije</naam>
<code>DZ</code>
</land>
<land>
</landen>
가 지금은 사람들이 목록에서 한 국가를 선택합니다 :이처럼 보이는 방법이다. 나는 AlertDialog가 모든 것을 표시하는 것이 좋을지라도.
난 내 XML 파일에서 값을 얻는 방법은 다음과 같이이다 :
protected ArrayList<Land> getLanden() {
ArrayList<Land> lijst = new ArrayList<Land>();
try {
DocumentBuilder builder =DocumentBuilderFactory.newInstance().newDocumentBuilder();
Document doc = builder.parse(getAssets().open("landenlijst.xml"));
NodeList nl = doc.getElementsByTagName("land");
for (int i=0;i<nl.getLength();i++) {
Node node = nl.item(i);
Land land = new Land();
land.land = Xml.innerHtml(Xml.getChildByTagName(node, "naam"));
land.landcode = Xml.innerHtml(Xml.getChildByTagName(node, "code"));
lijst.add(land);
}
Log.d("Gabug","Klaar met parsen");
Log.d("Gabug","Landen: " + lijst);
} catch (Exception e) {
e.printStackTrace();
}
return lijst;
}
그리고 내에 AlertDialog 만들기 위해 이것을 사용 :이 경우 모르는
public void KiesLandMenu(){
ArrayList<Land> alleLanden = getLanden();
final CharSequence[] items = alleLanden.toArray(new CharSequence[alleLanden.size()]);
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("Kies land");
builder.setItems(items, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int item) {
switch (item){
case 0:
break;
case 1:
break;
case 2:
break;
}
}
});
AlertDialog alert = builder.create();
alert.show();
}
을 내가 DDL을 기록 할 때 DDMS가 일부 바이트 코드 또는 무언가를 반환하기 때문에 작동합니다. 그리고 그 후 그것은 강제로 ArrayStoreException 때문에 종료합니다 ..
내 질문은; 이것이 최선의 방법인가요? 그렇다면 어떻게 ArrayStoreException을 수정할 수 있습니까? 그렇지 않다면 내 사용자가 국가를 선택할 수있는 더 좋은 방법은 무엇입니까? 또한, 어떻게 누군가가 도청했는지 등록 할 수 있습니까?
는 편집 :
public void KiesLandMenu(){
ArrayAdapter<Land> arrAdapter;
ArrayList<Land> alleLanden = getLanden();
arrAdapter = new ArrayAdapter<Land>(this, android.R.layout.simple_list_item_single_choice, alleLanden);
ListView list = (ListView)findViewById(R.layout.lijstview);
list.setAdapter(arrAdapter);
list.setChoiceMode(ListView.CHOICE_MODE_SINGLE);
list.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> list, View view, int position,
long id) {
Log.e("item clicked", String.valueOf(position));
}
});
}
NullPointerException이 당신은 아마 AlertDialog
를 확장하고 그것을 줄 수 list.setAdapter(arrAdapter);
(ListView) findViewById (R.layout.lijstview)가 null을 반환합니다. R.id.lijstview입니다. – techiServices
레이아웃 폴더에 lijstview.xml을 생성했는데 Eclipse에서 오류가 발생하지 않습니다. R.id.lijstview를 입력하면 에러가 발생합니다. – Galip
먼저 onCreate에서 레이아웃을 설정해야합니다. 아래에서 내 대답을 편집합니다. – Zarah