gpt4 book ai didi

android - 如何描述在EditText中设置为editorExtras属性的xml

转载 作者:太空狗 更新时间:2023-10-29 14:50:27 24 4
gpt4 key购买 nike

当我像下面这样编写 xml 和布局时,由于 Activity 中的 onCreate 方法使用了 setContentView(),它们会导致空指针异常。

【布局】

<LinearLayout>
<EditText
...
android:editorExtras="@xml/extra_data"
... />
</LinearLayout>

【res/xml/extra_data.xml】

<input-extras xmlns:android="http://schemas.android.com/apk/res/android">
<extra android:name="hoge" android:value="huga"/>
</input-extras>

【空指针异常】

E  Caused by: java.lang.NullPointerException
E at android.content.res.Resources.parseBundleExtras(Resources.java:1731)
E at android.widget.TextView.setInputExtras(TextView.java:4068)

我认为问题出在操作系统中加载资源 xml 的解析器中。

但我无法解决这个问题。所以我将创建可加载解析器的 xml。

顺便说一句,上面的 extra_data.xml 表现如下。

通过我的应用程序,我从 Resources.java 中提取了有问题的 parseBundleExtras()。

private void parseBundleExtras(XmlResourceParser parser, Bundle outBundle)
throws XmlPullParserException, IOException {
int outerDepth = parser.getDepth();
int type;

while ((type = parser.next()) != XmlPullParser.END_DOCUMENT) {
String nodeName = parser.getName();
Log.d("TAG", "type:" + type + " name:" + nodeName);
}
}

【日志】

D/TAG: type:START_DOCUMENT name:(null) 
D/TAG: type:START_TAG name:input-extras
D/TAG: type:START_TAG name:extra
D/TAG: type:END_TAG name:extra
D/TAG: type:END_TAG name:input-extras

我建议是因为引用第一个的节点名是null,此时是Null Pointer Exception。

由于在原生端工作,我无法确认解析处理。

在这种情况下,我正在寻找一种方法来描述 xml,以免在 extra_data.xml 中出现 Null Pointer Exception。

如果可能的话,我想知道即使我在EditText中将xml设置为editorExtras属性也不会出现问题的方式而不是那个问题。

最佳答案

你可以这样做:
创建时间:

public class ExtendEditText extends EditText {
public ExtendEditText(Context context) {
super(context);
Bundle bundle = getInputExtras(true);
bundle.putString("hoge","huga");
}

public ExtendEditText(Context context, AttributeSet attrs) {
super(context, attrs);
Bundle bundle = getInputExtras(true);
bundle.putString("hoge","huga");
}

public ExtendEditText(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
Bundle bundle = getInputExtras(true);
bundle.putString("hoge","huga");
}
}

关于android - 如何描述在EditText中设置为editorExtras属性的xml,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35931047/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com