android函数问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了android函数问题相关的知识,希望对你有一定的参考价值。

@Override
public boolean onCreateOptionsMenu(Menu menu)

return super.onCreateOptionsMenu(menu);


请问这句话是什么意思?

android一共有三种形式的菜单:
1.选项菜单(optinosMenu)
2.上下文菜单(ContextMenu)
3.子菜单(subMenu)
其中最常用的就是选项菜单(optionsMenu), 该菜单在点击 menu 按键 后会在对应的Activity底部显示出来。
1.Activity菜单机制 (与dialog类似)
Activity有一套机制来实现对菜单的管理,方法如下:
   1.public boolean onCreateOptionsMenu(Menu menu)
此方法用于初始化菜单,其中menu参数就是即将要显示的Menu实例。
返回true则显示该menu,false 则不显示;
(只会在第一次初始化菜单时调用)
2.public boolean onPrepareOptionsMenu(Menu menu)
在onCreateOptionsMenu执行后,菜单被显示前调用;如果菜单已经被创建,则在菜单显示前被调用。
同样的, 返回true则显示该menu,false 则不显示;
(可以通过此方法动态的改变菜单的状态,比如加载不同的菜单等)
3.public void onOptionsMenuClosed(Menu menu)
每次菜单被关闭时调用.
(菜单被关闭有三种情形,menu按钮被再次点击、back按钮被点击或者用户选择了某一个菜单项)

4.public boolean onOptionsItemSelected(MenuItem item)
菜单项被点击时调用,也就是菜单项的监听方法。

通过这几个方法,可以得知,对于Activity,同一时间只能显示和监听一个Menu 对象。追问

return super.onCreateOptionsMenu(menu);

这句是什么意思, 为什么要这样写? 这个返回到底是true 还是false?

参考技术A 相当于JAVA里的return 0;这个不太重要。
oncreat 里的东西会在启动之后运行的,相当于JAVA里的main()追问

return super.onCreateOptionsMenu(menu);

这句是什么意思, 为什么要这样写? 这个返回到底是true 还是false?

参考技术B 调用父类的oncreate相关方法,然后返回

Android Renderscript 字符串函数?

【中文标题】Android Renderscript 字符串函数?【英文标题】:Android Renderscript String Functions? 【发布时间】:2011-06-03 03:23:37 【问题描述】:

Renderscript 中有字符串函数吗?比如 vsprintf?

具体来说,我想将浮点数转换为字符串。我必须从头开始写吗?

谢谢!

【问题讨论】:

【参考方案1】:

抱歉,这里有一个更好的。它也适用于整数,但它们添加了“.000”。

char stringBuffer[50];
static const int MAX_STRING_LENGTH = sizeof(stringBuffer) - 1;

void drawFloat(float value, int x, int y) 

    int index = 0;

    int scaledValue = (int)(value * 1000);

    index = MAX_STRING_LENGTH;
    stringBuffer[index] = 0;

    while(scaledValue > 0 || index > MAX_STRING_LENGTH - 4) 

        index--;

        if(index == MAX_STRING_LENGTH - 4) 
            stringBuffer[index--] = '.';
        

        int digitValue = scaledValue % 10;

        stringBuffer[index] = '0' + digitValue;

        scaledValue /= 10;
    

    if(value < 0) 
        stringBuffer[index--] = '-';
        

    rsgDrawText(&stringBuffer[index], x - 10, y + 5);

【讨论】:

【参考方案2】:

找不到简单的方法所以...

void drawInteger(int value, int x, int y) 

    char text[50] = "0";
    int index = 0;

    if(value != 0) 

        index = 49;
        text[index] = 0;

        while(value > 0) 

            index--;

            int digitValue = value % 10;

            text[index] = '0' + digitValue;

            value /= 10;
        

        if(value < 0) 
            text[index--] = '-';
            
    

    rsgDrawText(&text[index], x - 10, y + 5);


void drawFloat(float value, int x, int y) 

    char text[50] = "0.000";
    int index = 0;

    if(value != 0) 

        int integerPart = (int)(value * 1000);

        index = 49;
        text[index] = 0;

        while(integerPart > 0) 

            index--;

            if(index == 45) 
                text[index--] = '.';
            

            int digitValue = integerPart % 10;

            text[index] = '0' + digitValue;

            integerPart /= 10;
        

        if(value < 0) 
            text[index--] = '-';
            
    

    rsgDrawText(&text[index], x - 10, y + 5);

【讨论】:

而且它可能会更有效率。我正在那里分配一个缓冲区。

以上是关于android函数问题的主要内容,如果未能解决你的问题,请参考以下文章

Android[Kotlin] - 错误 TypeError: ["Android"].showToast 不是函数

Android中的PBKDF2函数

可以在android中调用javascript函数吗?

Android AsyncTask 等待其他函数完成

从 AngularJS 控制器调用 Android 函数

Android 在 WebView 中调用 JavaScript 函数