Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
Auslesen der Länge einer XML-Datei in Android Studio
ich habe mir eine level-list Datei erstellt. Diese beinhaltet eine Anzahl x an item. Wie lese ich die Länge der Datei aus?
Da gibt es weder .size, noch .length, die Suche im Netz brachte leider nichts.
Geht es überhaupt? Was mache ich falsch?
Ich lese mich gerade hier ein und habe etwas ausprobieren wollen, und zwar gibt es eine feine Sache wie level-list, mit setImageLevel(int x) kannst du dann einem ImageView die Bilder zuweisen.
So wollte ich die Länge der xml-Datei auslesen und die Zufallszahl dieser als Bild an ImageView übergeben.
Aber ich bekomme es nicht hin und ich verstehe es zum Teil nicht, warum ich eine xml-Datei, die im drawable-Ordner liegt nicht auslesen kann, obwohl es eine xml-Datei ist. Wenn ich ein xml-Ordner erstellen lasse und diese dann dort speichere, dann geht es, aber ich bekomme es trotzdem nicht hin, die Anzahl an Items auszulesen.
Wenn ich in der getRandomNumber() eine Zahl vorgebe, dann funktioniert es einwandfrei. Ich würde gerne die Datei auslesen können, um es um weitere Seiten erweitern zu können, Figuren etc.
Hier erstmal der Code:
Java:
public class MainActivity extends Activity implements View.OnClickListener
{
Button btn_dice, btn_color;
ImageView imageView;
TextView textView;
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btn_dice = initializeButton(R.id.btn_dice);
btn_color = initializeButton(R.id.btn_color);
imageView = findViewById(R.id.imageView);
textView = findViewById(R.id.textView);
}
private Button initializeButton(int id)
{
Button button = findViewById(id);
button.setOnClickListener(this);
return button;
}
@Override
public void onClick(View v)
{
switch (v.getId())
{
case R.id.btn_dice:
imageView.setImageLevel(getRandomNumber());
case R.id.btn_color:
}
}
private int getRandomNumber()
{
/**
* Hier komme ich nicht weiter, weil ich die sides_of_dice.xml nicht auslesen kann;
*/
int x = 6;//mit der vorgegebenen Zahl funktioniert es einwandfrei
return (int) (Math.random() * x);
}
}
Also ohne "umständlich" die XML zu parsen kommst du mEn nicht an die Länge heran.
Vielleicht schaust du dir als alternative mal TypedArrays an. Dort kriegst du einfach die Länge heraus und das setzen des Bildes ist nicht aufwändiger.
@truesoul@Robat Das Beispiel zum Thema level-list handelt sich um das Anzeigen für Akku oder WiFi etc. Eventuell ist es für den Zweck, für den ich es gerade benutzen wollte, garnicht gedacht. Werde mich weiter einlesen. Vielen Dank für Antwort und Hilfe!