«

xml输入是如传递给java的

时间:2024-3-2 19:57     作者:韩俊     分类: Android


<span style="font-size: 18px; font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);">   </span><span style="font-size: 18px; font-family: Arial, Helvetica, sans-serif;  background-color: rgb(255, 255, 255);"><strong><span style="font-family:Microsoft YaHei;">废话叫前言</span></strong></span>


开发语言的进步,感触最新的就是,以前写windows的时候使用的是C#后来,学习了一下WPF,内心就是感慨万千

居然用xml来写界面了,不用那些抽象的代码来写,关键是xml的界面还用实时的可观性。xml就和html一样,标记语言。

可以直接在浏览器看到。

之后学习Android后,感觉又回来,真的,语言在进步呀。

在Android中xml时如何连接到java的呢?

是这样的:

value中新建一个atrrs.xml

<?xml version="1.0" encoding="utf-8"?>
<resources>
<declare-styleable name="DivActionBar">
<attr name="right_onclick" format="string" />
</declare-styleable>
</resources>

xml中引用:

使用空间名:

xmlns:app=”http://schemas.android.com/apk/res/com.tuxiaobei“

使用

app:right_onclick="function"

java中使用:

       <strong><span style="font-size:18px;">TypedArray array = context
                .obtainStyledAttributes(attrs, R.styleable.DivActionBar);
        final String methodName;</span>
        <span style="font-size:18px;">methodName = array.getString(R.styleable.DivActionBar_right_onclick);</span></strong>
        rightText.setOnClickListener(new OnClickListener() {

            private Method method;

            @Override
            public void onClick(View v) {
                if (!TextUtils.isEmpty(methodName)) {
                    if (method == null) {
                        try {
                            method = getContext().getClass().getMethod(methodName,
                                    DivActionBar.class);
                        } catch (NoSuchMethodException e) {
                            throw new IllegalStateException("Could not find a method "
                                    + method + "(View) in the activity "
                                    + getContext().getClass() + " for onClick handler"
                                    + " on view " + DivActionBar.this.getClass() + e);
                        }

                        try {
                            method.invoke(getContext(), DivActionBar.this);
                        } catch (IllegalAccessException e) {
                            e.printStackTrace();
                        } catch (IllegalArgumentException e) {
                            e.printStackTrace();
                        } catch (InvocationTargetException e) {
                            e.printStackTrace();
                        }
                    }
                }
            }
        });

        <p>版权声明:本文为博主原创文章,未经博主允许不得转载。</p>

标签: android

热门推荐