B2BÍøÂçÈí¼þ

 ÕÒ»ØÃÜÂë
 Á¢¼´×¢²á ÉóºËÍøÕ¾ºÅ:QQ:896757558
ËÑË÷
²é¿´: 8|»Ø¸´: 0
´òÓ¡ ÉÏÒ»Ö÷Ìâ ÏÂÒ»Ö÷Ìâ

ActivityÉúÃüÖÜÆÚ£º¹ÜÀíÓ¦ÓýçÃæµÄ·¨Ôò

[¸´ÖÆÁ´½Ó]

798

Ö÷Ìâ

803

Ìû×Ó

6468

»ý·Ö

abc

Rank: 9Rank: 9Rank: 9

»ý·Ö
6468
Ìøתµ½Ö¸¶¨Â¥²ã
Â¥Ö÷
·¢±íÓÚ ×òÌì 09:33 | Ö»¿´¸Ã×÷Õß »ØÌû½±Àø |µ¹Ðòä¯ÀÀ |ÔĶÁģʽ

ÔÚ°²×¿¿ª·¢ÖУ¬Activity ÊÇÒ»¸ö·Ç³£ÖØÒªµÄ×é¼þ£¬Ö÷ÒªÓÃÓÚÒÔϼ¸¸ö·½Ã棺

  1. Óû§½çÃæչʾ£ºÃ¿¸ö Activity Í¨³£´ú±íÒ»¸öÍêÕûµÄÆÁÄ»»ò½çÃ棬Óû§ÓëÓ¦ÓõĽ»»¥Ö÷Ҫͨ¹ý Activity ÊµÏÖ¡£ÀýÈ磬һ¸öÓʼþÓ¦ÓÿÉÄÜ°üº¬Ò»¸öÏÔʾÓʼþÁбíµÄ Activity£¬ÒÔ¼°ÁíÒ»¸öÓÃÓÚÔĶÁÓʼþÄÚÈݵĠActivity¡£

  2. ÉúÃüÖÜÆÚ¹ÜÀí£ºActivity ÓÐÒ»¸öÉúÃüÖÜÆÚ£¬¼´´´½¨¡¢Æô¶¯¡¢»Ö¸´¡¢ÔÝÍ£¡¢Í£Ö¹ºÍÏú»ÙµÈ״̬¡£¿ª·¢Õß¿ÉÒÔͨ¹ýÖØд Activity µÄÉúÃüÖÜÆÚ·½·¨£¬À´¹ÜÀí×ÊÔ´¡¢±£´æ״̬µÈ£¬È·±£Ó¦ÓõÄÁ÷³©ÔËÐкÍÁ¼ºÃµÄÓû§ÌåÑé¡£

  3. ×é¼þ½»»¥£ºActivity ¿ÉÒÔÆô¶¯ÆäËû Activity£¬Ò²¿ÉÒÔÏòÆäËû×é¼þ£¨Èç Service¡¢BroadcastReceiver£©·¢ËÍÏûÏ¢£¬ÊµÏÖ×é¼þ¼äµÄ½»»¥¡£

  4. ʼþ´¦Àí£ºActivity ¿ÉÒÔÏìÓ¦Óû§µÄÊäÈëʼþ£¬±ÈÈç´¥ÃþÆÁÄ»¡¢µã»÷°´Å¥µÈ£¬²¢×÷³öÏàÓ¦µÄ´¦Àí¡£

ÔÚÄãµÄ´úÂëʾÀýÖУ¬activity ÀàÄ£ÄâÁË°²×¿µÄ Activity£¬Ö÷Òª¸ºÔð´´½¨ºÍÏÔʾÓû§½çÃæ¡¢¹ÜÀíÊÓͼ×é¼þÒÔ¼°´¦Àíµã»÷ʼþµÈ¡£Í¨¹ý onCreate ·½·¨½øÐгõʼ»¯£¬setContentView ·½·¨ÉèÖýçÃæ²¼¾Ö£¬findViewById ·½·¨²éÕÒÌض¨µÄÊÓͼ×é¼þ£¬²¢Í¨¹ýÕâЩ×é¼þµÄ setOnClickListener ·½·¨À´´¦ÀíÓû§µã»÷²Ù×÷¡£´ËÍ⣬´úÂ뻹չʾÁËÈçºÎÔÚÐÂÏß³ÌÖÐÔËÐкÄʱ²Ù×÷£¬ÒÔ¼°ÈçºÎÈ·±£ÔÚ UI Ïß³ÌÖиüÐÂÓû§½çÃæ¡£

µÚÒ»¸öÀý×Ó˵Ã÷£º

new activity().close()

var ac = new activity();
ac.onCreate(() => {
    var view = ac.inflate(
        `<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:orientation="vertical"
            android:padding="8dp">
            <Button
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:id="@+id/button1"
                android:text="¹Ø±Õ" />
        </LinearLayout>`, null
    );

    ac.setContentView(view);
    var btn1 = ac.findViewById("button1");
    btn1.setOnClickListener(() => {
        ac.close(); // ¹Ø±Õ»î¶¯µÄ²Ù×÷
    });
});

// ÏÔʾ»î¶¯
ac.show();
  1. ´´½¨»î¶¯¶ÔÏó£ºvar ac = new activity(); ´´½¨Ò»¸öеĻ¶ÔÏó¡£

  2. ÉèÖû²¼¾Ö£ºÍ¨¹ý ac.inflate ·½·¨ÉèÖà XML ²¼¾Ö£¬XML ¶¨ÒåÁËÒ»¸ö°´Å¥¡£

  3. ÉèÖð´Å¥µÄµã»÷ʼþ£ºÕÒµ½°´Å¥ button1£¬²¢ÉèÖõã»÷¼àÌýÆ÷¡£ÔÚ¼àÌýÆ÷Öе÷Óàac.close() ·½·¨À´¹Ø±Õ»î¶¯¡£

  4. ÏÔʾ»î¶¯£ºÍ¨¹ý ac.show() ·½·¨ÏÔʾ»î¶¯¡£

ÇëÈ·±£ÄãµÄ activity ÀඨÒåÁË close ºÍ show ·½·¨£¬·ñÔòµ÷Óûáʧ°Ü¡£

µÚ¶þ¸öÀý×Ó˵Ã÷£º

new activity().findViewById(¡®button1¡¯)

var ac = new activity();
ac.onCreate(() => {
    var view = ac.inflate(
        `<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:orientation="vertical"
            android:padding="8dp">
            <Button
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:id="@+id/button1"
                android:text="¹Ø±Õ" />
        </LinearLayout>`, null
    );

    ac.setContentView(view);
    var btn1 = ac.findViewById("button1");
    btn1.setOnClickListener(() => {
        ac.close();
    });
});

ac.show();

ÒÔÉÏ´úÂëÊÇÔڻÏÔʾʱ´´½¨Ò»¸ö°´Å¥£¬µã»÷°´Å¥ºó¹Ø±Õµ±Ç°»î¶¯¡£
ac.close(); ÊÇÓÃÓڹرջòÏú»Ù»î¶¯µÄ¼ÙÉ躯Êý¡£
findViewById(¡®button1¡¯) ²éÕÒ²¼¾ÖÖж¨ÒåµÄ°´Å¥²¢·µ»ØÆäÒýÓã¬ÒÔ±ãÔÚ´úÂëÖвٿء£

ÕâЩ´úÂëƬ¶ÎºÍ¸ÅÄîÊÇÓÃÓÚ˵Ã÷²¼¾ÖºÍʼþ´¦ÀíÈçºÎ»ùÓڻ¶ÔÏó½øÐвÙ×÷µÄ£¬¾ßÌåʵÏֺ͹¦ÄÜÊÇÐèÒªÔÚ¶ÔÓ¦µÄ¿ò¼ÜÖÐÖ§³ÖµÄ¡£

µÚÈý¸öÀý×Ó˵Ã÷£º

new activity().findWebViewById(¡®web1¡¯)

var ac = new activity();
ac.onCreate(() => {
    var view = ac.inflate(
        `<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:orientation="vertical"
            android:padding="8dp">
            <WebView
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:id="@+id/web1" />
        </LinearLayout>`, null
    );


    ac.setContentView(view);
    var webView = ac.findWebViewById('web1');

    // ÔÚ WebView ÖмÓÔØÒ»¸ö URL
    webView.loadUrl("https://www.baidu.com");
});


ac.show();

˵Ã÷

activity ÀàµÄʵÀý»¯£º ´´½¨ÁËÒ»¸ö activity ¶ÔÏó¡£

onCreate ·½·¨£º ÉèÖýçÃæµÄ²¼¾Ö£¬°üº¬Ò»¸ö WebView¡£

findWebViewById ·½·¨£º ÓÃÀ´»ñÈ¡²¼¾ÖÖÐ ID Ϊ web1 µÄ WebView ʵÀý¡£

WebView ²Ù×÷£º ¶ÔÕÒµ½µÄ WebView Ö´ÐвÙ×÷£¬ÀýÈç¼ÓÔØÒ»¸öÍøÒ³¡£

ÕâÖÖ·½·¨Í¨³£ÓÃÓÚ¶¯Ì¬»ñÈ¡²¢²Ù×÷ UI ¿Ø¼þ£¬µ«Çë×¢Ò⣬¾ßÌåϸ½ÚºÍ·½·¨ÐèÒª¸ù¾Ýʵ¼ÊµÄ Android »ò×Ô¶¨Òå API ¶ø¶¨¡£

µÚËĸöÀý×Ó˵Ã÷£º

new activity().getActivity()

var ac = new activity();
ac.onCreate(() => {
    var view = ac.inflate(
        `<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:orientation="vertical"
            android:padding="8dp">
            <Button
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:id="@+id/button1"
                android:text="¿ªÊ¼" />
        </LinearLayout>`, null
    );


    ac.setContentView(view);
    var btn1 = ac.findViewById("button1");
    btn1.setOnClickListener(() => {
        // ºÄʱ´úÂë±ØÐëÔÚÐÂÏß³ÌÖÐÔËÐÐ
        var t1 = new thread();
        t1.runJsCode(() => {
            console.log("²âÊÔui");
        }, "Ïß³Ì1");
    });
});


ac.show();
  • activity()£º´ËÀàµÄʵÀý»¯ÓÃÓÚ¹ÜÀí½çÃæÉúÃüÖÜÆÚºÍÊÓͼ¡£
  • onCreate£ºÔڻ´´½¨Ê±Ö´ÐеĻص÷º¯Êý£¬ÓÃÓÚ³õʼ»¯ÊÓͼ¡£
  • inflate£º¼ÓÔØ XML ²¼¾Ö²¢Éú³ÉÊÓͼ²ã´Î½á¹¹¡£
  • setContentView£º½«Ö¸¶¨µÄÊÓͼ×÷Ϊ»î¶¯µÄÄÚÈÝÊÓͼ¡£
  • findViewById£º»ñÈ¡²¼¾ÖÖеÄÌض¨ÊÓͼ£¬´ËÀýÓÃÓÚ°´Å¥¡£
  • setOnClickListener£ºÉèÖð´Å¥µã»÷ʼþµÄ¼àÌýÆ÷¡£
  • Thread£º´´½¨ÐÂÏß³ÌÒÔ±ÜÃâ×èÈûÖ÷Ï̡߳£
  • runJsCode£ºÔÚÐÂÏß³ÌÖÐÖ´ÐÐÖ¸¶¨µÄ JavaScript ´úÂë¡£
  • show£ºÏÔʾ»î¶¯¡£

Èç¹û activity¡¢thread ÒÔ¼°ÆäËû¶ÔÏó䶨Ò壬ȷ±£Ïà¹ØµÄ¿â»ò¿ò¼ÜÒѾ­ÕýÈ·ÒýÈë²¢ÅäÖá£
µÚÎå¸öÀý×Ó˵Ã÷£º

function Activity() {
    this.rootView = {
        // Ä£ÄâÊÓͼ¶ÔÏó
        render: function() {
            console.log("Rendering the root view!");
        }
    };
}

Activity.prototype.getView = function() {
    return this.rootView;
};

// ʾÀý
var ac = new Activity();
var rootView = ac.getView();
rootView.render();  // Êä³ö: Rendering the root view!

˵Ã÷

Activity Àà: ÎÒÃǶ¨ÒåÁËÒ»¸ö¼òµ¥µÄActivityÀ࣬ËüÄÚ²¿°üº¬Ò»¸örootView¶ÔÏó£¬ÓÃÀ´Ä£Äâ¸ùÊÓͼ¡£

getView ·½·¨: ´Ë·½·¨·µ»ØrootView£¬´ú±íÕû¸ö»î¶¯µÄÊÓͼ¡£

ʹÓÃʾÀý: ÎÒÃÇ´´½¨ÁËActivityµÄÒ»¸öʵÀý£¬µ÷ÓÃgetView·½·¨»ñÈ¡ÊÓͼ£¬È»ºóµ÷ÓÃrender·½·¨À´Ä£ÄâäÖȾ¸ÃÊÓͼ¡£

µÚÁù¸öÀý×Ó˵Ã÷£º

new activity().inflate(¡®¡¯,ViewGroup)

var ac = new activity();


ac.onCreate(() => {
    var view = ac.inflate(
        `<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:orientation="vertical"
            android:padding="8dp">
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="Hello, World!  AIWROK" />
        </LinearLayout>`, 
        null // ÔÚÕâÀï´«È븸ViewGroup£¬Èç¹ûÓÐÐèÒªµÄ»°
    );


    ac.setContentView(view);
});


ac.show();

˵Ã÷£º

  1. Activity ´´½¨

    • var ac = new activity();£º´´½¨Ò»¸öеĻʵÀý¡£
  2. onCreate ·½·¨

    • ʹÓàac.onCreate(() => { ... }) ¶¨Òåµ±»î¶¯´´½¨Ê±µÄÐÐΪ¡£
  3. ÊÓͼÌî³äºÍÉèÖÃ

    • ac.inflate(...)£ºÍ¨¹ýXML×Ö·û´®À´¶¨Òå²¼¾ÖÊÓͼ¡£
    • ac.setContentView(view);£º½«Ìî³äµÄÊÓͼÉèÖÃΪ»î¶¯µÄÄÚÈÝÊÓͼ¡£
  4. °´Å¥²éÕҺͼàÌýÆ÷

    • var btn1 = ac.findViewById("button1");£ºÕÒµ½²¼¾ÖÖж¨ÒåµÄ°´Å¥¡£
    • btn1.setOnClickListener(() => { ... })£ºÎª°´Å¥ÉèÖõã»÷¼àÌýÆ÷¡£
  5. Ïß³Ì

    • var t1 = new thread();£º´´½¨Ò»¸öеÄÏ̡߳£
    • t1.runJsCode(...);£ºÔÚÏß³ÌÖÐÔËÐÐJavaScript´úÂë¡£
  6. ÏÔʾ»î¶¯

    • ac.show();£ºÏÔʾ»î¶¯µÄ½çÃæ¡£

µÚÆ߸öÀý×Ó˵Ã÷£º

new activity().inflateSxml(¡®¡¯,ViewGroup)

var ac = new activity();

ac.onCreate(() => {

    // ʹÓà XML ×Ö·û´®´´½¨ÊÓͼ
    var view = ac.inflateSxml(`
        <vertical>
            <button id="button1" text="µÚÒ»¸ö°´Å¥"/>
            <button text="µÚ¶þ¸ö°´Å¥"/>
        </vertical>
    `, null);

    // ÉèÖûµÄÄÚÈÝÊÓͼ
    ac.setContentView(view);

    // Ñ°ÕÒ°´Å¥²¢ÉèÖõã»÷ʼþ¼àÌýÆ÷
    var btn1 = ac.findViewById("button1");
    btn1.setOnClickListener(() => {

        // ʼþ´¦Àí´úÂëÐèÒªÔËÐÐÔÚÐÂÏß³ÌÖÐ
        var t1 = new thread();
        t1.runJsCode(() => {
            println("²âÊÔUI");
        }, "Ïß³Ì1");

    });

});

// ÏÔʾ»î¶¯
ac.show();

Õâ¸öʾÀýչʾÁËÈçºÎʹÓàinflateSxml ·½·¨½« XML ת»»ÎªÊÓͼ¶ÔÏó¡£ÒÔÏÂÊÇ´úÂëµÄÏêϸ˵Ã÷£º

´´½¨»î¶¯ÊµÀý

    var ac = new activity();
  1. ÔÚ onCreate ·½·¨ÖÐ×°Ôز¼¾Ö

    ac.onCreate(() => {
        var view = ac.inflateSxml(`
            <vertical>
                <button id="button1" text="µÚÒ»¸ö°´Å¥"/>
                <button text="µÚ¶þ¸ö°´Å¥"/>
            </vertical>`, null);
        ac.setContentView(view);
    });
    

inflateSxml£ºÓÃÓÚ½âÎö XML ×Ö·û´®²¢×ª»»ÎªÊÓͼ¶ÔÏó¡£
setContentView£ºÉèÖõ±Ç°»î¶¯µÄÄÚÈÝÊÓͼ¡£

  1. ÉèÖð´Å¥µã»÷ʼþ

    var btn1 = ac.findViewById("button1");
    btn1.setOnClickListener(() => {
        // ºÄʱ´úÂë±ØÐëÔÚÐÂÏß³ÌÖÐÔËÐÐ
        var t1 = new thread();
        t1.runJsCode(() => {
            println("²âÊÔUI")
        }, "Ïß³Ì1");
    });
    

findViewById£º»ñÈ¡ÊÓͼÖÐ ID Ϊ button1 µÄ°´Å¥¡£
setOnClickListener£ºÉèÖð´Å¥µÄµã»÷ʼþ¡£
ʹÓÃÐÂÏß³ÌÔËÐкÄʱ²Ù×÷£¬È·±£½çÃæÁ÷³©¡£

  1. ÏÔʾ»î¶¯

    ac.show();
    

    show£ºÓÃÓÚÏÔʾָ¶¨µÄ»î¶¯¡£

Õâ¸öʾÀýչʾÁËÈçºÎʹÓà JavaScript Ä£Äâ Android »î¶¯ÖеĻù±¾²Ù×÷£¬°üÀ¨²¼¾Ö¼ÓÔغÍʼþ´¦Àí¡£

µÚ°Ë¸öÀý×Ó˵Ã÷£º

new activity().loadLayoutFile(¡®¡¯)

// ³õʼ»¯Ò»¸öactivityÒ³Ãæ
var ac = new activity();

// ¼ÓÔØXML²¼¾ÖÎļþ²¢ÏÔʾUI
ac.loadLayoutFile("/´úÂë/layout.xml");

// ¿ÉÒÔÔÚ¼ÓÔØÍê²¼¾Öºó½øÐÐÆäËûUI¿Ø¼þµÄ²Ù×÷
// ÀýÈ磬ÕÒµ½Ò»¸ö°´Å¥²¢ÉèÖõã»÷ʼþ
// var button = ac.findViewById("button_id");
// button.setOnClickListener(() => {
//     printl("°´Å¥±»µã»÷");
// });

// ÏÔʾactivity
ac.show();

Çë¸ù¾Ýʵ¼ÊÐèÒªÌæ»»¡±/´úÂë/layout.xml¡±ÎªÄãµÄXMLÎļþµÄʵ¼Ê·¾¶¡£ÉÏÊö´úÂëʾÀýÐèÒªÔÚÖ§³ÖÕâÒ»APIµÄ»·¾³ÏÂÖ´ÐС£

µÚ¾Å¸öÀý×Ó˵Ã÷£º

new activity().loadSXML(`    <vertical>
        <button text="µÚÒ»¸ö°´Å¥"/>
        <button text="µÚ¶þ¸ö°´Å¥"/>
    </vertical>`)

loadSXML ·½·¨£ºÓÃÓÚ¼ÓÔØÀà XML ²¼¾Ö´úÂë¡£ËüÖ§³Ö½Ï¼òµ¥µÄ UI ²¼¾Ö¡£
²ÎÊý arg0£º½ÓÊÜÀà XML ²¼¾Ö´úÂëµÄ×Ö·û´®¡£
ʾÀýÖУ¬´´½¨ÁËÒ»¸ö vertical ²¼¾Ö£¬ÆäÖаüº¬Á½¸ö°´Å¥£¬Ã¿¸ö°´Å¥ÏÔʾ²»Í¬µÄÎı¾¡£

µÚÊ®¸öÀý×Ó˵Ã÷£º

// ¼ÓÔØxmlÎļþ²¢ÏÔʾUI
var ac = new activity();
ac.loadLayoutFile("/´úÂë/layout.xml");

// ¼ÓÔؼò°æxml
var ac = new activity();
ac.loadSXML(`
    <vertical>
        <button text="µÚÒ»¸ö°´Å¥"/>
        <button text="µÚ¶þ¸ö°´Å¥"/>
    </vertical>
`);

// ¼ÓÔØxml
var ac = new activity();
ac.loadXML(`
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:padding="8dp">
    <Button
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/button1"
        android:text="¿ªÊ¼" />
</LinearLayout>
`);

Õâ¶Î´úÂëչʾÁËÈçºÎͨ¹ýÈýÖÖ²»Í¬µÄ·½Ê½¼ÓÔغÍÏÔʾXML²¼¾ÖÎļþ¡£ÒÔÏÂÊÇÿÖÖ·½Ê½µÄ˵Ã÷£º

  1. ¼ÓÔØXMLÎļþ²¢ÏÔʾUI£º

    var ac = new activity();
    ac.loadLayoutFile("/´úÂë/layout.xml");
    

Õâ¶Î´úÂë´´½¨ÁËÒ»¸öеĻactivity£¬²¢Í¨¹ýloadLayoutFile·½·¨¼ÓÔØλÓÚ·¾¶/´úÂë/layout.xmlµÄ²¼¾ÖÎļþ£¬ÓÃÓÚÏÔʾUI¡£

  1. ¼ÓÔؼò°æXML£º

    var ac = new activity();
    ac.loadSXML(`
        <vertical>
            <button text="µÚÒ»¸ö°´Å¥"/>
            <button text="µÚ¶þ¸ö°´Å¥"/>
        </vertical>
    `);
    

Õâ¶Î´úÂëչʾÁËÈçºÎÔÚ´úÂëÖÐÖ±½Ó¶¨ÒåXML²¼¾Ö×Ö·û´®²¢¼ÓÔØÏÔʾ¡£Ê¹ÓÃloadSXML·½·¨¿ÉÒÔ¼ÓÔؼò°æµÄXML²¼¾Ö¡£ÔÚÕâ¸öÀý×ÓÖУ¬¶¨ÒåÁËÒ»¸ö´¹Ö±²¼¾Ö£¨vertical£©£¬ÆäÖаüº¬Á½¸ö°´Å¥£¨button£©¡£

  1. ¼ÓÔØXML£º

    var ac = new activity();
    ac.loadXML(`
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical"
        android:padding="8dp">
        <Button
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:id="@+id/button1"
            android:text="¿ªÊ¼" />
    </LinearLayout>
    `);
    

Õâ¶Î´úÂëʹÓÃloadXML·½·¨¼ÓÔØÒ»¶Î±ê×¼µÄAndroid XML²¼¾Ö¶¨Òå¡£ÔÚÕâ¸ö²¼¾ÖÖУ¬Ê¹ÓÃÁËLinearLayout×÷Ϊ¸ù²¼¾Ö£¬ËüÊÇÒ»¸ö´¹Ö±µÄÏßÐÔ²¼¾Ö£¬°üº¬Ò»¸ö°´Å¥¡£°´Å¥µÄ¿í¶ÈÉèΪmatch_parent£¬¸ß¶ÈΪwrap_content£¬ÏÔʾÎÄ×ÖΪ¡°¿ªÊ¼¡±£¬¡°id¡±ÓÃÓÚΨһ±êʶ¡£

ÕâÖÖ¼¼Êõ¿ÉÒÔÔÚ×Ô¶¯»¯½Å±¾ºÍÓ¦ÓóÌÐò¿ª·¢ÖпìËÙ´´½¨UI²¼¾Ö¡£

µÚʮһ¸öÀý×Ó˵Ã÷£º

new activity().onCreate(Function)

var ac = new activity();


ac.onCreate(() => {


    var view = ac.inflateSxml(`
        <vertical>
            <button id="button1" text="µã»÷ÎÒ"/>
        </vertical>
    `, null);


    ac.setContentView(view);


    var btn1 = ac.findViewById("button1");
    btn1.setOnClickListener(() => {
        println("°´Å¥±»µã»÷ÁË");
    });


});


ac.show();

Õâ¶Î´úÂë´´½¨ÁËÒ»¸ö Android »î¶¯£¬²¢ÔڻÖд´½¨ÁËÒ»¸ö¼òµ¥µÄ½çÃæºÍʼþ¼àÌýÆ÷¡£ÒÔÏÂÊÇ´úÂëµÄÏêϸ˵Ã÷£º

  1. ´´½¨»î¶¯ÊµÀý£º

    var ac = new activity();
    

ÕâÀï´´½¨ÁËÒ»¸öеĠactivity ¶ÔÏóʵÀý£¬´ú±íÒ»¸ö»î¶¯£¨Activity£©¡£

  1. ¶¨Òå»î¶¯´´½¨Ê±µÄÐÐΪ£º

    ac.onCreate(() => {
        ...
    });
    

ʹÓàonCreate ·½·¨Ö¸¶¨»î¶¯´´½¨Ê±ÒªÖ´ÐеĴúÂë¡£

  1. ¼ÓÔز¼¾Ö£º

    var view = ac.inflateSxml(`
        <vertical>
            <button id="button1" text="µã»÷ÎÒ"/>
        </vertical>
    `, null);
    

ʹÓàinflateSxml ·½·¨ÒÔ XML ×Ö·û´®µÄÐÎʽ¶¨ÒåÁËÒ»¸ö¼òµ¥µÄÓû§½çÃæ²¼¾Ö£¬ÆäÖаüº¬Ò»¸ö´¹Ö±²¼¾ÖºÍÒ»¸ö°´Å¥¡£

  1. ÉèÖÃÄÚÈÝÊÓͼ£º

    ac.setContentView(view);
    

ÉèÖõ±Ç°»î¶¯µÄÄÚÈÝÊÓͼΪ¸Õ²Å´´½¨µÄ²¼¾Ö¡£

  1. ²éÕÒ°´Å¥²¢ÉèÖõã»÷ʼþ¼àÌýÆ÷£º

    var btn1 = ac.findViewById("button1");
    btn1.setOnClickListener(() => {
        println("°´Å¥±»µã»÷ÁË");
    });
    

²éÕÒ²¼¾ÖÖеİ´Å¥£¬²¢ÎªÆäÉèÖÃÒ»¸öµã»÷ʼþ¼àÌýÆ÷£¬°´Å¥µã»÷ʱ»áÔÚ¿ØÖÆ̨Êä³ö ¡°°´Å¥±»µã»÷ÁË¡±¡£

  1. ÏÔʾ»î¶¯£º

    ac.show();
    

ÏÔʾ»î¶¯£¬Ê¹Óû§½çÃæ¿É¼û¡£

´Ë´úÂëչʾÁËÈçºÎÔÚ Android Öд´½¨¼òµ¥µÄÓû§½çÃæ²¢ÏìÓ¦Óû§µÄµã»÷ʼþ¡£

µÚÊ®¶þ¸öÀý×Ó˵Ã÷£º

new activity().runOnUiThread(function fun(){
  //ÕâÀïд´úÂë
  printl('UIÏß³ÌÖ´ÐдúÂë') 

})

var ac = new activity();


ac.onCreate(() => {
    var view = ac.inflateSxml(`
        <vertical>
            <button id="button1" text="µã»÷ÎÒ"/>
        </vertical>
    `, null);


    ac.setContentView(view);


    var btn1 = ac.findViewById("button1");
    btn1.setOnClickListener(() => {
        // µã»÷°´Å¥Ê±ÔÚ UI Ïß³ÌÖÐÔËÐдúÂë
        ac.runOnUiThread(() => {
            printl("UIÏß³ÌÖ´ÐдúÂë");
        });
    });
});


ac.show();

˵Ã÷

  1. Activity ´´½¨£º

    • ´´½¨Ò»¸öеĠactivity ÊµÀý£¬²¢ÔÚÆä onCreate ·½·¨Öж¨Òå³õʼ»¯´úÂë¡£
  2. ÊÓͼ²¼¾Ö£º

    • ʹÓàinflateSxml ¶¨ÒåÒ»¸ö¼òµ¥µÄ²¼¾Ö£¬°üÀ¨Ò»¸ö°´Å¥¡£
    • µ÷ÓàsetContentView ·½·¨½«²¼¾ÖÉèÖÃΪµ±Ç°»î¶¯µÄÄÚÈÝÊÓͼ¡£
  3. °´Å¥µã»÷ʼþ£º

    • ʹÓàfindViewById ·½·¨ÕÒµ½²¼¾ÖÖеİ´Å¥¡£
    • ¸ø°´Å¥ÉèÖÃÒ»¸öµã»÷ʼþ¼àÌýÆ÷¡£
  4. ÔËÐÐ UI Ï̴߳úÂ룺

    • ÔÚ°´Å¥µã»÷ʱ£¬µ÷ÓàrunOnUiThread ·½·¨£¬Õ⽫ȷ±£Ö¸¶¨µÄ´úÂëÔÚ UI Ïß³ÌÉÏÖ´ÐС£
    • println ·½·¨ÓÃÓÚÊä³öÒ»ÌõÈÕÖ¾ÏûÏ¢£¬±íʾ´úÂëÔÚ UI Ïß³ÌÖÐÖ´ÐС£

µÚÊ®Èý¸öÀý×Ó˵Ã÷£º

new activity().setContentView(View)

function Activity() {}

Activity.prototype.onCreate = function(callback) {
    console.log("Activity Created");
    callback();
};

Activity.prototype.runOnUiThread = function(callback) {
    // Ä£ÄâÔÚUIÏß³ÌÖÐÖ´ÐÐcallback
    setTimeout(callback, 0);
};

// Ìí¼ÓsetContentView·½·¨
Activity.prototype.setContentView = function(view) {
    console.log("ÊÓͼ¶ÔÏóÒÑÉèÖÃ:", view);
};

// ´´½¨Ò»¸öеĻʵÀý
var myActivity = new Activity();

myActivity.onCreate(function() {
    console.log("»Øµ÷º¯Êý±»µ÷ÓÃ");

    // ÉèÖÃÊÓͼ¶ÔÏó
    myActivity.setContentView("Main View");

    myActivity.runOnUiThread(function() {
        console.log("UIÏß³ÌÖÐÔËÐеĴúÂë");
    });
});

Õâ¸ö´úÂ붨ÒåÁËÒ»¸öÄ£ÄâµÄ Activity À࣬²¢ÎªÆäÌí¼ÓÁË onCreate ºÍ runOnUiThread ·½·¨¡£ÒÔÏÂÊÇ´úÂëµÄÖð²½½âÎö£º

  1. ¶¨ÒåActivityÀࣺ

    function Activity() {}
    

ÕâÊÇÒ»¸ö¹¹Ô캯Êý£¬ÓÃÓÚ´´½¨ Activity µÄʵÀý¡£

  1. ¶¨ÒåonCreate·½·¨£º

    Activity.prototype.onCreate = function(callback) {
        console.log("Activity Created");
        callback();
    };
    

    Õâ¸ö·½·¨½ÓÊÜÒ»¸ö»Øµ÷º¯Êý×÷Ϊ²ÎÊý¡£µ±±»µ÷ÓÃʱ£¬Ëü»áÊä³ö ¡°Activity Created¡±£¬È»ºóÖ´Ðд«ÈëµÄ»Øµ÷º¯Êý¡£

  2. ¶¨ÒårunOnUiThread·½·¨£º

    Activity.prototype.runOnUiThread = function(callback) {
        // Ä£ÄâÔÚUIÏß³ÌÖÐÖ´ÐÐcallback
        setTimeout(callback, 0);
    };
    

´Ë·½·¨Ò²½ÓÊÜÒ»¸ö»Øµ÷º¯Êý×÷Ϊ²ÎÊý¡£½èÖú setTimeout Ä£ÄâÔÚUIÏß³ÌÖÐÒì²½Ö´Ðлص÷¡£

  1. ´´½¨ÊµÀý²¢µ÷Ó÷½·¨£º

    var myActivity = new Activity();
    
    myActivity.onCreate(function() {
        console.log("»Øµ÷º¯Êý±»µ÷ÓÃ");
        myActivity.runOnUiThread(function() {
            console.log("UIÏß³ÌÖÐÔËÐеĴúÂë");
        });
    });
    

´´½¨ Activity µÄʵÀý myActivity¡£
µ÷ÓàonCreate£¬´«ÈëÒ»¸ö»Øµ÷º¯Êý£¬Ôڻص÷ÖÐÊä³ö ¡°»Øµ÷º¯Êý±»µ÷Óᱡ£
ʹÓàrunOnUiThread ÔËÐÐÁíÒ»¸ö»Øµ÷£¬Ä£ÄâÔÚUIÏß³ÌÖÐÔËÐУ¬²¢Êä³ö ¡°UIÏß³ÌÖÐÔËÐеĴúÂ롱¡£

Õâ¸ö´úÂëչʾÁËÈçºÎʹÓûص÷º¯ÊýºÍÒì²½Ö´ÐÐÀ´Ä£ÄâActivityÉúÃüÖÜÆÚÖеÄijЩÐÐΪ¡£

µÚÊ®ËĸöÀý×Ó˵Ã÷£º

new activity().show()

var ac = new activity();
ac.onCreate(() => {
    var view = ac.inflate(
        `<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:orientation="vertical"
            android:padding="8dp">
            <Button
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:id="@+id/button1"
                android:text="¿ªÊ¼" />
        </LinearLayout>`, null
    );


    ac.setContentView(view);
    var btn1 = ac.findViewById("button1");
    btn1.setOnClickListener(() => {
        // ºÄʱ´úÂë±ØÐëÔÚÐÂÏß³ÌÖÐÔËÐÐ
        var t1 = new thread();
        t1.runJsCode(() => {
            printl("²âÊÔui");
        }, "Ïß³Ì1");
    });
});


ac.show();

Õâ¶Î´úÂ붨ÒåÁËÒ»¸öеĻactivity£¬²¢Ôڻ´´½¨Ê±ÉèÖÃÁËÒ»¸ö¼òµ¥µÄÓû§½çÃæ¡£Óû§½çÃæ°üº¬Ò»¸ö°´Å¥£¬µã»÷°´Å¥Ê±£¬»áÔÚÒ»¸öÐÂÏß³ÌÖÐÖ´ÐдúÂ룬Êä³ö¡°²âÊÔui¡±¡£¾ßÌå˵Ã÷ÈçÏ£º

  1. »î¶¯¶ÔÏó´´½¨: var ac = new activity(); ´´½¨ÐµĻʵÀý¡£

  2. onCreate ·½·¨: ac.onCreate(() => {...}) ¶¨Òå»î¶¯µÄ´´½¨Âß¼­¡£ÔÚÕâÀÄãͨ¹ý inflate ·½·¨ÉèÖÃÁËÒ»¸öÏßÐÔ²¼¾Ö LinearLayout£¬°üº¬Ò»¸ö°´Å¥¡£

  3. °´Å¥µã»÷¼àÌý:

    • ʹÓàfindViewById ÕÒµ½°´Å¥¡£
    • ʹÓàsetOnClickListener Îª°´Å¥ÉèÖõã»÷ʼþ¼àÌýÆ÷¡£
    • µã»÷ʱ£¬´´½¨Ò»¸öÐÂÏ̠߳new thread()£¬ÔÚÆäÖÐÖ´ÐРrunJsCode ·½·¨£¬Õâ¸ö·½·¨½«»áÊä³öÎı¾¡°²âÊÔui¡±¡£
  4. ÏÔʾ»î¶¯: ac.show(); ×îºóÕâÐдúÂëÓÃÓÚÏÔʾÕâ¸ö»î¶¯¡£

×ÜÌåÀ´Ëµ£¬Õâ¶Î´úÂëʵÏÖÁËÒ»¸ö¼òµ¥µÄUI½»»¥£¬µ±Óû§µã»÷°´Å¥Ê±£¬»áÔÚºǫ́Ïß³ÌÖдòÓ¡¡°²âÊÔui¡±¡£Çë×¢Ò⣬ȷ±£activityÀ༰Ïà¹Ø·½·¨ÔÚÄãµÄ»·¾³ÖÐÒÑÕýÈ·¶¨Ò壬·ñÔò¿ÉÄÜ»á³öÏÖ´íÎó¡£

ÒÔÏÂËùÓÐÀý×Ó´úÂ뼯ºÏÆðÀ´£¬ÈúóÃæAIÖÇÄÜÌåץȡÀý×Ó¡£

// ¶¨Òå activity Àà
function activity() {
    this.rootView = null;
}


activity.prototype.onCreate = function(callback) {
    console.log("Activity Created");
    callback();
};


activity.prototype.setContentView = function(view) {
    console.log("ÊÓͼ¶ÔÏóÒÑÉèÖÃ:", view);
    this.rootView = view;
};


activity.prototype.show = function() {
    console.log("ÏÔʾ»î¶¯");
    if (this.rootView) {
        console.log("»î¶¯ÊÓͼ:", this.rootView);
    } else {
        console.log("ûÓÐÉèÖÃÊÓͼ¶ÔÏó");
    }
};


activity.prototype.close = function() {
    console.log("¹Ø±Õ»î¶¯");
};


activity.prototype.inflate = function(layoutString, parent) {
    console.log("¼ÓÔز¼¾Ö:", layoutString);
    // ÕâÀï¼ÙÉè·µ»ØÒ»¸öÊÓͼ¶ÔÏó
    return layoutString;
};


activity.prototype.inflateSxml = function(layoutString, parent) {
    console.log("¼ÓÔؼò°æ²¼¾Ö:", layoutString);
    // ÕâÀï¼ÙÉè·µ»ØÒ»¸öÊÓͼ¶ÔÏó
    return layoutString;
};


activity.prototype.loadLayoutFile = function(path) {
    console.log("¼ÓÔز¼¾ÖÎļþ:", path);
    // ÕâÀï¼ÙÉè·µ»ØÒ»¸öÊÓͼ¶ÔÏó
    return path;
};


activity.prototype.loadSXML = function(layoutString) {
    console.log("¼ÓÔؼò°æ²¼¾ÖÎļþ:", layoutString);
    // ÕâÀï¼ÙÉè·µ»ØÒ»¸öÊÓͼ¶ÔÏó
    return layoutString;
};


activity.prototype.loadXML = function(layoutString) {
    console.log("¼ÓÔرê×¼²¼¾ÖÎļþ:", layoutString);
    // ÕâÀï¼ÙÉè·µ»ØÒ»¸öÊÓͼ¶ÔÏó
    return layoutString;
};


activity.prototype.findViewById = function(id) {
    console.log("²éÕÒÊÓͼ×é¼þ:", id);
    // ÕâÀï¼ÙÉè·µ»ØÒ»¸öÊÓͼ×é¼þ¶ÔÏó
    return {
        setOnClickListener: function(callback) {
            console.log("ÉèÖõã»÷ʼþ¼àÌýÆ÷");
            callback();
        }
    };
};


activity.prototype.findWebViewById = function(id) {
    console.log("²éÕÒ WebView ×é¼þ:", id);
    // ÕâÀï¼ÙÉè·µ»ØÒ»¸ö WebView ×é¼þ¶ÔÏó
    return {
        loadUrl: function(url) {
            console.log("¼ÓÔØ URL:", url);
        }
    };
};


activity.prototype.runOnUiThread = function(callback) {
    console.log("ÔÚ UI Ïß³ÌÖÐÔËÐдúÂë");
    callback();
};


// ¶¨Òå thread Àà
function thread() {}


thread.prototype.runJsCode = function(callback, threadName) {
    console.log("ÔËÐÐÏß³Ì:", threadName);
    callback();
};


// ʾÀý´úÂëÕûºÏ
function main() {
    // µÚÒ»¸öÀý×Ó
    var ac1 = new activity();
    ac1.onCreate(() => {
        var view1 = ac1.inflate(
            `<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:orientation="vertical"
                android:padding="8dp">
                <Button
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:id="@+id/button1"
                    android:text="¹Ø±Õ" />
            </LinearLayout>`, null
        );


        ac1.setContentView(view1);
        var btn1 = ac1.findViewById("button1");
        btn1.setOnClickListener(() => {
            ac1.close(); // ¹Ø±Õ»î¶¯µÄ²Ù×÷
        });
    });


    ac1.show();


    // µÚ¶þ¸öÀý×Ó
    var ac2 = new activity();
    ac2.onCreate(() => {
        var view2 = ac2.inflate(
            `<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:orientation="vertical"
                android:padding="8dp">
                <Button
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:id="@+id/button1"
                    android:text="¹Ø±Õ" />
            </LinearLayout>`, null
        );


        ac2.setContentView(view2);
        var btn1 = ac2.findViewById("button1");
        btn1.setOnClickListener(() => {
            ac2.close();
        });
    });


    ac2.show();


    // µÚÈý¸öÀý×Ó
    var ac3 = new activity();
    ac3.onCreate(() => {
        var view3 = ac3.inflate(
            `<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:orientation="vertical"
                android:padding="8dp">
                <WebView
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:id="@+id/web1" />
            </LinearLayout>`, null
        );


        ac3.setContentView(view3);
        var webView = ac3.findWebViewById("web1");


        // ÔÚ WebView ÖмÓÔØÒ»¸ö URL
        webView.loadUrl("https://www.baidu.com");
    });


    ac3.show();


    // µÚËĸöÀý×Ó
    var ac4 = new activity();
    ac4.onCreate(() => {
        var view4 = ac4.inflate(
            `<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:orientation="vertical"
                android:padding="8dp">
                <Button
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:id="@+id/button1"
                    android:text="¿ªÊ¼" />
            </LinearLayout>`, null
        );


        ac4.setContentView(view4);
        var btn1 = ac4.findViewById("button1");
        btn1.setOnClickListener(() => {
            // ºÄʱ´úÂë±ØÐëÔÚÐÂÏß³ÌÖÐÔËÐÐ
            var t1 = new thread();
            t1.runJsCode(() => {
                console.log("²âÊÔui");
            }, "Ïß³Ì1");
        });
    });


    ac4.show();


    // µÚÎå¸öÀý×Ó
    function Activity() {
        this.rootView = {
            // Ä£ÄâÊÓͼ¶ÔÏó
            render: function() {
                console.log("Rendering the root view!");
            }
        };
    }


    Activity.prototype.getView = function() {
        return this.rootView;
    };


    var ac5 = new Activity();
    var rootView = ac5.getView();
    rootView.render();  // Êä³ö: Rendering the root view!


    // µÚÁù¸öÀý×Ó
    var ac6 = new activity();


    ac6.onCreate(() => {
        var view6 = ac6.inflate(
            `<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:orientation="vertical"
                android:padding="8dp">
                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="Hello, World!  AIWROK" />
            </LinearLayout>`,
            null // ÔÚÕâÀï´«È븸ViewGroup£¬Èç¹ûÓÐÐèÒªµÄ»°
        );


        ac6.setContentView(view6);
    });


    ac6.show();


    // µÚÆ߸öÀý×Ó
    var ac7 = new activity();


    ac7.onCreate(() => {
        // ʹÓà XML ×Ö·û´®´´½¨ÊÓͼ
        var view7 = ac7.inflateSxml(`
            <vertical>
                <button id="button1" text="µÚÒ»¸ö°´Å¥"/>
                <button text="µÚ¶þ¸ö°´Å¥"/>
            </vertical>
        `, null);


        // ÉèÖûµÄÄÚÈÝÊÓͼ
        ac7.setContentView(view7);


        // Ñ°ÕÒ°´Å¥²¢ÉèÖõã»÷ʼþ¼àÌýÆ÷
        var btn1 = ac7.findViewById("button1");
        btn1.setOnClickListener(() => {
            // ʼþ´¦Àí´úÂëÐèÒªÔËÐÐÔÚÐÂÏß³ÌÖÐ
            var t1 = new thread();
            t1.runJsCode(() => {
                console.log("²âÊÔUI");
            }, "Ïß³Ì1");
        });
    });


    // ÏÔʾ»î¶¯
    ac7.show();


    // µÚ°Ë¸öÀý×Ó
    var ac8 = new activity();


    // ¼ÓÔØXML²¼¾ÖÎļþ²¢ÏÔʾUI
    ac8.loadLayoutFile("/´úÂë/layout.xml");


    // ÏÔʾactivity
    ac8.show();


    // µÚ¾Å¸öÀý×Ó
    var ac9 = new activity();
    ac9.loadSXML(`    
        <vertical>
            <button text="µÚÒ»¸ö°´Å¥"/>
            <button text="µÚ¶þ¸ö°´Å¥"/>
        </vertical>
    `);


    // µÚÊ®¸öÀý×Ó
    var ac10a = new activity();
    ac10a.loadLayoutFile("/´úÂë/layout.xml");


    var ac10b = new activity();
    ac10b.loadSXML(`
        <vertical>
            <button text="µÚÒ»¸ö°´Å¥"/>
            <button text="µÚ¶þ¸ö°´Å¥"/>
        </vertical>
    `);


    var ac10c = new activity();
    ac10c.loadXML(`
        <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:orientation="vertical"
            android:padding="8dp">
            <Button
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:id="@+id/button1"
                android:text="¿ªÊ¼" />
        </LinearLayout>
    `);


    // µÚʮһ¸öÀý×Ó
    var ac11 = new activity();


    ac11.onCreate(() => {
        var view11 = ac11.inflateSxml(`
            <vertical>
                <button id="button1" text="µã»÷ÎÒ"/>
            </vertical>
        `, null);


        ac11.setContentView(view11);


        var btn1 = ac11.findViewById("button1");
        btn1.setOnClickListener(() => {
            console.log("°´Å¥±»µã»÷ÁË");
        });
    });


    ac11.show();


    // µÚÊ®¶þ¸öÀý×Ó
    var ac12 = new activity();


    ac12.onCreate(() => {
        var view12 = ac12.inflateSxml(`
            <vertical>
                <button id="button1" text="µã»÷ÎÒ"/>
            </vertical>
        `, null);


        ac12.setContentView(view12);


        var btn1 = ac12.findViewById("button1");
        btn1.setOnClickListener(() => {
            // µã»÷°´Å¥Ê±ÔÚ UI Ïß³ÌÖÐÔËÐдúÂë
            ac12.runOnUiThread(() => {
                console.log("UIÏß³ÌÖ´ÐдúÂë");
            });
        });
    });


    ac12.show();
}


main();

¼¯ºÏ´úÂëÒâ˼£¬Õâ¶Î´úÂ붨ÒåÁËÒ»¸ö¼òµ¥µÄJavaScriptÄ£Äâ¿ò¼Ü£¬ÓÃÓÚÄ£ÄâAndroidÓ¦ÓÃÖеÄActivityºÍThreadµÄÐÐΪ¡£Ö÷Òª¹¦ÄÜ°üÀ¨£º

  1. ActivityÀࣺ

    • onCreate(callback): µ±»î¶¯´´½¨Ê±µ÷Ó㬴«ÈëÒ»¸ö»Øµ÷º¯Êý¡£
    • setContentView(view): ÉèÖûµÄ¸ùÊÓͼ¡£
    • show(): ÏÔʾ»î¶¯¼°ÆäÊÓͼ¡£
    • close(): ¹Ø±Õ»î¶¯¡£
    • inflate(layoutString, parent): ´Ó²¼¾Ö×Ö·û´®´´½¨ÊÓͼ¡£
    • inflateSxml(layoutString, parent): ´Ó¼ò°æ²¼¾Ö×Ö·û´®´´½¨ÊÓͼ¡£
    • loadLayoutFile(path): ´ÓÎļþ·¾¶¼ÓÔز¼¾Ö¡£
    • loadSXML(layoutString): ¼ÓÔؼò°æ²¼¾ÖÎļþ¡£
    • loadXML(layoutString): ¼ÓÔرê×¼²¼¾ÖÎļþ¡£
    • findViewById(id): ¸ù¾ÝID²éÕÒÊÓͼ×é¼þ£¬²¢¿ÉÒÔÉèÖõã»÷ʼþ¼àÌýÆ÷¡£
    • findWebViewById(id): ¸ù¾ÝID²éÕÒWebView×é¼þ£¬²¢¿ÉÒÔ¼ÓÔØURL¡£
    • runOnUiThread(callback): ÔÚUIÏß³ÌÖÐÔËÐдúÂë¡£
  2. ThreadÀࣺ

    • runJsCode(callback, threadName): ÔËÐÐJavaScript´úÂëÔÚÒ»¸öÐÂÏß³ÌÖУ¬´«Èë»Øµ÷º¯ÊýºÍÏß³ÌÃû¡£
  3. ʾÀý´úÂ룺

    • ´´½¨¶à¸öactivity¶ÔÏó£¬Ã¿¸ö¶ÔÏóÔÚonCreate·½·¨ÖÐÉèÖÃÊÓͼÄÚÈÝ£¬°üÀ¨°´Å¥ºÍWebView¡£
    • ͨ¹ýfindViewByIdºÍfindWebViewById·½·¨²éÕÒÊÓͼ×é¼þ£¬²¢Îª°´Å¥ÉèÖõã»÷ʼþ¡£
    • ÔÚijЩµã»÷ʼþÖУ¬Í¨¹ýrunJsCode·½·¨ÔÚÒ»¸öÐÂÏß³ÌÖÐÔËÐдúÂë¡£
    • ʹÓÃloadLayoutFile¡¢loadSXMLºÍloadXML·½·¨¼ÓÔز»Í¬µÄ²¼¾ÖÎļþ¡£
  4. Êä³ö£º

    • ´úÂëÖаüº¬´óÁ¿µÄconsole.logÓï¾ä£¬ÓÃÓÚÊä³ö¸÷¸ö·½·¨µÄµ÷ÓúÍÖ´Ðйý³Ì£¬Ä£ÄâÁËAndroidÓ¦ÓÃÖÐActivityºÍThreadµÄÉúÃüÖÜÆÚºÍÐÐΪ¡£

Õâ¸ö¿ò¼ÜÖ÷ÒªÓÃÓÚѧϰºÍ²âÊÔÄ¿µÄ£¬°ïÖú¿ª·¢ÕßÀí½âÈçºÎÔÚJavaScriptÖÐÄ£ÄâAndroidµÄ»î¶¯ºÍÏ̻߳úÖÆ¡£

»Ø¸´

ʹÓõÀ¾ß ¾Ù±¨

±¾°æ»ý·Ö¹æÔò

¹Ø±Õ

QQ|»ÓªÏúÈí¼þ×ÛºÏÌÖÂÛ|»ÓªÏúÈí¼þÓÐÎʱشð|»ÓªÏúÈí¼þ½Ì³ÌרÇø|»ÓªÏúÈí¼þPOST½Å±¾·ÖÏí|»ÓªÏúÈí¼þÆÕͨ½Å±¾·ÖÏí|»ÓªÏúÈí¼þÈí¼þ×ÊѶ|»ÓªÏúÈí¼þ¾«Æ·Èí¼þ|»ÓªÏúÈí¼þ¸üй«¸æ|ÓªÏúÈí¼þ|B2BÈí¼þ|B2BÍøÂçÈí¼þ ( ¾©ICP±¸09078825ºÅ )±¾ÍøÕ¾¿ª·¢µÄÓªÏúÈí¼þÊÇÒ»¿îеÄÍøÂçÓªÏúÈí¼þ£¬Õâ¿îÓªÏú¿ÉÒÔÈ¥ÍøÕ¾Èí¼þ£¬²©¿ÍÈí¼þ£¬B2BÈí¼þ£¬·ÖÀàÐÅÏ¢Íø·¢Ìù£¬¿ÉÒÔÇÀɳ·¢£¬¿ÉÒÔµ½°Ù¶ÈÎÄ¿âÉÏ´«WORDÎĵµ£¬¿ÉÒÔµ½Ò»Ð©ÊÇÏà²áÍøÕ¾×Ô¶¯ÉÏ´«Í¼Æ¬£¬Õâ¸ö×Ô¶¯·¢ÌûÈí¼þ×Ô´øÔÆÖ©Ö룬¼Ó¿ìÊÕ¼£¬ÓÐ6ÖÖ¶Ô½Ó´òÂë½Ó¿Ú£¬·½±ã£¬Ð§Âʸߣ¬Ëٶȿ죬¶øÇÒ¶ÔÍ϶¯µÄÑéÖ¤ÂëÈ«ÍøµÚÒ»¼Ò¶À¼ÒÖ§³Ö£¬È«²¿Ô­´´¼¼Êõ£¬¶À¼ÒÑз¢£¬Õý°æÔ­´´´ø°æȨÈí¼þ¡£Ñ¡ÔñÍòÄÜÓªÏúÈí¼þ£¬¾ÍÑ¡ÔñÁËÒ»ÖÖ׬ǮµÄЧÂÊ£¬´ÓûÓб»³¬Ô½¹ý£¬Ò»Ö±ÔÚŬÁ¦Ñз¢Ð¼¼Êõ¡£·Å·ÉÃÎÏ룬½â·ÅË«ÊÖ£¬À´µã´´Ò⣬³É¾ÍÄãµÄÃÎÏ룬¾ÍÔÚÍòÄÜÓªÏúÈí¼þ¿ªÊ¼

map2

GMT+8, 2025-2-15 19:00 , Processed in 0.132993 second(s), 32 queries .

¿ìËٻظ´ ·µ»Ø¶¥²¿ ·µ»ØÁбí