Этот вопрос задан очень часто в разных ситуациях, но в течение дня я не могу найти ответ, который исправляет мою ошибку.Разбирайте файл макета андроида XML с помощью XmlPullParser
У меня есть xml-файл с именем activity_single_touch.xml
внутри res/layout
. Этот файл используется для добавления видов, таких как кнопки, но я также хочу иметь возможность редактировать его «вживую» (пользователь может рисовать на экране).
После андроида руководство, я попытался с помощью XmlPullParser
в моей основной код Java так:
public class SingleTouchActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// setContentView(R.layout.activity_single_touch);
XmlPullParser parser = getResources().getXml(R.xml.activity_single_touch);
AttributeSet attributes = Xml.asAttributeSet(parser);
setContentView(new SingleTouchEventView(this, attributes));
}
public class SingleTouchEventView extends View {
...
}
}
Остальная часть кода использует OnDraw
и OnTouchEvent
нарисовать путь в соответствии с движением пользователя, а затем недействительным.
Ошибка, которую я получаю в данный момент, «не может разрешить символ« xml ». Как я могу это исправить?
пс: Вещи, которые я попробовал (и не удалось): Использование
XmlPullParser parser =getResources().getXml(R.layout.activity_single_touch);
и получаю ошибку "ожидаемый XML элемент",
Я прочитал над
this guide
these answeres
these as well
use of streams
use of context
moving the xml file to a different folder(could not move it)
this guide
и, конечно, в поисках Google и некоторые более StackOverflow вопросы и ответы.
Я не знаю, как вы хотите, чтобы я использовать это - я попытался изменить эту строку: XmlPullParser парсер = GetResources() .getXml (R.xml.activity_single_touch); в блок кода, который вы мне дали, и это не сработало. Я также попытался переключить эту строку на: XmlResourceParser parser = getResources(). GetLayout (R.layout.activity_single_touch); и не работает. Что я делаю неправильно? – yo1122
Что вы подразумеваете под этим не работает? Не отображается ли 'TagName'? –
Прежде всего - он говорит мне по этой строке: Атрибуты атрибута = Xml.asAttributeSet (парсер); «не удается разрешить синтаксический анализатор символов». Я думал, что это проблема с областью, поэтому я изменил первые несколько строк вашего кода на: XmlResourceParser parser; try { parser = getResources(). GetLayout (R.layout.activity_main); ... Но тогда он говорит, что «переменный» синтаксический анализатор «возможно, не был инициализирован». Что еще мне делать? Btw - просто чтобы убедиться, что я использую этот код в нужном месте, все это в методе OnCreate вместо строки, указанной в приведенном выше комментарии. – yo1122