当前位置: 编程技术>移动开发
本页文章导读:
▪initializer element is not constant objective-c初始化变量有关问题 initializer element is not constant objective-c初始化变量问题
malloc函数时:initializer element is not constant 中文解释是,成员的初始化不是常量. c语言里的全局变量是在编译器的链接阶段完成的char *.........
▪ 【转】同一个位置展示不同的图片->level-list 【转】同一个位置显示不同的图片--->level-list
有时候,我们为了在一个image view中显示不同的图片,往往会使用:if (条件1){image.setBackground(R.id.xxx1);}else if (条件2){image.setBackground(R.id.xxx2);} ............
▪ 第三章:交互式通信服务与手机统制(自定义拨打电话) 第三章:交互式通信服务与手机控制(自定义拨打电话)
效果:main.xml
<?xml version="1.0" encoding="utf-8"?>
<AbsoluteLayout
android:id="@+id/widget0"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
.........
[1]initializer element is not constant objective-c初始化变量有关问题
来源: 互联网 发布时间: 2014-02-18
initializer element is not constant objective-c初始化变量问题
malloc函数时:initializer element is not constant
中文解释是,成员的初始化不是常量.
c语言里的全局变量是在编译器的链接阶段完成的
char *names = (char *)malloc(sizeof(char)*10);
使得names需要调用函数malloc函数,这当然不行了,因为编译器在链接时并不能执行函数啊
全局变量既是方法体外的变量
这类的错误还有例如
CGPoint cgp=CGPointMake(0,0);
NSString *str=[[NSString alloc] init];
下面的就不会报错
NSString *str=@“哈哈哈哈”;
malloc函数时:initializer element is not constant
中文解释是,成员的初始化不是常量.
c语言里的全局变量是在编译器的链接阶段完成的
char *names = (char *)malloc(sizeof(char)*10);
使得names需要调用函数malloc函数,这当然不行了,因为编译器在链接时并不能执行函数啊
全局变量既是方法体外的变量
这类的错误还有例如
CGPoint cgp=CGPointMake(0,0);
NSString *str=[[NSString alloc] init];
下面的就不会报错
NSString *str=@“哈哈哈哈”;
[2] 【转】同一个位置展示不同的图片->level-list
来源: 互联网 发布时间: 2014-02-18
【转】同一个位置显示不同的图片--->level-list
有时候,我们为了在一个image view中显示不同的图片,往往会使用:
if (条件1)
{
image.setBackground(R.id.xxx1);
}
else if (条件2)
{
image.setBackground(R.id.xxx2);
} ...
可以用另一个简便的方法实现相同的功能
首先,在res/drawable下建立一个xml文件,内容如下
<level-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:maxLevel="9" android:drawable="@drawable/battery_0" />
<item android:maxLevel="39" android:drawable="@drawable/battery_1" />
<item android:maxLevel="69" android:drawable="@drawable/battery_2" />
<item android:maxLevel="89" android:drawable="@drawable/battery_3" />
<item android:maxLevel="100" android:drawable="@drawable/battery_4" />
</level-list>
然后在layout中把image view的src设置成已创建好的xml文件
程序中变换图片时,只需要使用
imageview.getDrawable().setLevel(50)
...
Android会根据level的值自动选择对应的图片。手机显示剩余电量就是用这个方法来显示不同图片的。
转自:http://www.blogjava.net/lihao336/archive/2010/06/09/323108.html
有时候,我们为了在一个image view中显示不同的图片,往往会使用:
if (条件1)
{
image.setBackground(R.id.xxx1);
}
else if (条件2)
{
image.setBackground(R.id.xxx2);
} ...
可以用另一个简便的方法实现相同的功能
首先,在res/drawable下建立一个xml文件,内容如下
<level-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:maxLevel="9" android:drawable="@drawable/battery_0" />
<item android:maxLevel="39" android:drawable="@drawable/battery_1" />
<item android:maxLevel="69" android:drawable="@drawable/battery_2" />
<item android:maxLevel="89" android:drawable="@drawable/battery_3" />
<item android:maxLevel="100" android:drawable="@drawable/battery_4" />
</level-list>
然后在layout中把image view的src设置成已创建好的xml文件
程序中变换图片时,只需要使用
imageview.getDrawable().setLevel(50)
...
Android会根据level的值自动选择对应的图片。手机显示剩余电量就是用这个方法来显示不同图片的。
转自:http://www.blogjava.net/lihao336/archive/2010/06/09/323108.html
[3] 第三章:交互式通信服务与手机统制(自定义拨打电话)
来源: 互联网 发布时间: 2014-02-18
第三章:交互式通信服务与手机控制(自定义拨打电话)
效果:
main.xml
AndroidManifest.xml需要添加权限Android.permission.CALL_PHONE否则点击按钮会报错
效果:
main.xml
<?xml version="1.0" encoding="utf-8"?> <AbsoluteLayout android:id="@+id/widget0" android:layout_width="fill_parent" android:layout_height="fill_parent" xmlns:android="http://schemas.android.com/apk/res/android" > <EditText android:id="@+id/edit" android:layout_width="232px" android:layout_height="wrap_content" android:textSize="18sp" android:layout_x="30px" android:layout_y="27px" > </EditText> <Button android:id="@+id/call" android:layout_width="157px" android:layout_height="wrap_content" android:text="拨打电话" android:layout_x="54px" android:layout_y="117px" > </Button> </AbsoluteLayout>
AndroidManifest.xml需要添加权限Android.permission.CALL_PHONE否则点击按钮会报错
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="call.action.text" android:versionCode="1" android:versionName="1.0"> <application android:icon="@drawable/icon" android:label="@string/app_name"> <activity android:name=".CallActionTest" android:label="@string/app_name"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> <!-- 添加拨出电话的权限 --> <uses-permission android:name="android.permission.CALL_PHONE"></uses-permission> </manifest>
package call.action.text; import java.util.regex.Matcher; import java.util.regex.Pattern; import android.app.Activity; import android.content.Intent; import android.net.Uri; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.EditText; import android.widget.Toast; public class CallActionTest extends Activity { private EditText ed; private Button bt; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); /**载入main.xml*/ setContentView(R.layout.main); /**通过id找到EditText组件化*/ ed=(EditText)findViewById(R.id.edit); /**通过id找到Button组件化*/ bt=(Button)findViewById(R.id.call); /**设置Button按钮点击事件*/ bt.setOnClickListener(new Button.OnClickListener(){ public void onClick(View v){ try { /**获取输入文本框内容*/ String str = ed.getText().toString(); /**匹配号码格式是否正确*/ if (isPhoneNumberValid(str) == true) { /**构建一个新的Intent运行action.CALL的常数通过URI将字符串带入*/ /** * 也可以调用虚拟电话拨打电话 * Intent myIntentDial = new Intent( * "android.intent.action.DIAL", Uri.parse("tel:"+ "")); * */ Intent myIntentDial = new Intent( "android.intent.action.CALL", Uri.parse("tel:" + str)); /**带入自定义的Intent对象以运行拨打电话的工作*/ startActivity(myIntentDial); ed.setText(""); } else { ed.setText(""); /**提示信息*/ Toast.makeText(CallActionTest.this, "输入的电话格式不正确!", Toast.LENGTH_LONG).show(); } } catch (Exception e) { e.printStackTrace(); } } }); } public boolean isPhoneNumberValid(String str){ boolean flg=false; /** * ^\\(?:可以使用"("作为开头 * (\\d{3}):紧接着三个数字 * \\)?:可以使用")"继续 * [- ]?:接着三个数字 * (\\d{4}$:以四个数字的结束 * 可以比较下列数字格式: * (123)456-78900,123-4560-7890,12345679800,(123)-4560-7890*/ String str1="^\\(?(\\d{3})\\)?[- ]?(\\d{3})[- ]?(\\d{5})$"; String str2="^\\(?(\\d{3})\\)?[- ]?(\\d{4})[- ]?(\\d{4})$"; CharSequence input=str; /**创建Pattern带入表达式*/ Pattern pattern=Pattern.compile(str1); /**将Pattern以参数的形式传入Matcher*/ Matcher matcher=pattern.matcher(input); Pattern pattern2=Pattern.compile(str2); Matcher matcher2=pattern2.matcher(input); if(matcher.matches()||matcher2.matches()){ flg=true; } return flg; } }
最新技术文章: