私は Android アプリケーションを初めて使用します。リソース フォルダー内に 1 つの plist ファイルを作成したいのですが、plist ファイルを作成しようとしました。2 時間かかりましたが、これを作成できません。助けてください。
ありがとう
私は試した:
リソースから「raw」として新しいフォルダーを作成し、raw内にxmlファイルを作成しますが、エラーが発生します。
Android は plist ファイルを使用しません。これらは iOS/MacOS/OsX の機能です。
Androidプロジェクトアーキテクチャはplistを使用しません。アプリをカスタマイズするために、AndroidManifest.xmlがあります。または、リソースが必要な場合は、yourProject/resにファイルを作成して使用します。
次のサンプルを使用します...ソースから: http://solutionforandroid.blogspot.com.br/2013/05/how-to-parse-plist-in-android-and-how.html
public class ProductsPlistParsing {
Context context;
// constructor for to get the context object from where you are using this plist parsing
public ProductsPlistParsing(Context ctx) {
context = ctx;
}
public List<HashMap<String, String>> getProductsPlistValues() {
// specifying the your plist file.And Xml ResourceParser is an event type parser for more details Read android source
XmlResourceParser parser = context.getResources()
.getXml(R.xml.products);
// flag points to find key and value tags .
boolean keytag = false;
boolean valuetag = false;
String keyStaring = null;
String stringvalue = null;
HashMap<String, String> hashmap = new HashMap<String, String>();
List<HashMap<String, String>> listResult = new ArrayList<HashMap<String, String>>();
int event;
try {
event = parser.getEventType();
// repeting the loop at the end of the doccument
while (event != parser.END_DOCUMENT) {
switch (event) {
//use switch case than the if ,else statements
case 0:
// start doccumnt nothing to do
// System.out.println("\n" + parser.START_DOCUMENT
// + "strat doccument");
// System.out.println(parser.getName());
break;
case 1:
// end doccument
// System.out
// .println("\n" + parser.END_DOCUMENT + "end doccument");
// System.out.println(parser.getName());
break;
case 2:
if (parser.getName().equals("key")) {
keytag = true;
valuetag = false;
}
if (parser.getName().equals("string")) {
valuetag = true;
}
break;
case 3:
if (parser.getName().equals("dict")) {
System.out.println("end tag");
listResult.add(hashmap);
System.out.println(listResult.size() + "size");
hashmap = null;
hashmap = new HashMap<String, String>();
}
break;
case 4:
if (keytag) {
if (valuetag == false) {
// hashmap.put("value", parser.getText());
// System.out.println(parser.getText());
// starttag = false;
keyStaring = parser.getText();
}
}
if (valuetag && keytag) {
stringvalue = parser.getText();
hashmap.put(keyStaring, stringvalue);
// System.out.println(keyStaring);
// System.out.println(stringvalue);
valuetag = false;
keytag = false;
// System.out.println("this is hash map"
// + hashmap.get(keyStaring));
// Toast.makeText(getApplication(), keyStaring,
// Toast.LENGTH_SHORT).show();
}
break;
default:
break;
}
event = parser.next();
}
} catch (XmlPullParserException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
//here you get the plistValues.
return listResult;
}
}