当前位置: 编程技术>移动开发
本页文章导读:
▪Dialog向Activity传送数据 Dialog向Activity传递数据
我们知道,从一个Activity向另一个Activity传递数据,用Intent实现。而当一个浮在Activity之上的Dialog需要向该Activity传递数据时,应该怎么实现呢?接着上一篇.........
▪ com.cf.vpn.VPNCheck.sendCmd:Permission denied com.cf.vpn.VPNCheck.sendCmd::Permission denied
2012-02-22 20:57:08.008 com.cf.vpn.VPNCheck.sendCmd::Permission denied org.apache.harmony.luni.platform.OSNetworkSystem.socket:-2 dalvik.system.BlockGuard$WrappedNetworkSystem.socket:335 .........
▪ java核心技术小结六 java核心技术总结六
第10章
1、用命令打jar包:
选项
说明
c
创建一个新的或者空的存档文件并加入文件
C
暂时改变目录
e
在清单文件中创建一个条目
f
将jar文件.........
[1]Dialog向Activity传送数据
来源: 互联网 发布时间: 2014-02-18
Dialog向Activity传递数据
我们知道,从一个Activity向另一个Activity传递数据,用Intent实现。而当一个浮在Activity之上的Dialog需要向该Activity传递数据时,应该怎么实现呢?接着上一篇文章:用Dialog创建带箭头的对话框。
现在PopupDialog中声明一个内部接口PriorityListener,接口中声明一个回调函数refreshPriorityUI,用于在Dialog的监听事件触发后刷新Activity的UI显示。然后在MainActivity中的Button点击事件中实现这个接口并将其作为PopupDialog的构造函数的参数传入,并实现refreshPriorityUI()方法。话不多说,直接上代码——
PopupDialog代码:
MainActivity代码:
最后效果:
点击“上”之后,MainActivity会调用refreshPriorityUI()方法:
我们知道,从一个Activity向另一个Activity传递数据,用Intent实现。而当一个浮在Activity之上的Dialog需要向该Activity传递数据时,应该怎么实现呢?接着上一篇文章:用Dialog创建带箭头的对话框。
现在PopupDialog中声明一个内部接口PriorityListener,接口中声明一个回调函数refreshPriorityUI,用于在Dialog的监听事件触发后刷新Activity的UI显示。然后在MainActivity中的Button点击事件中实现这个接口并将其作为PopupDialog的构造函数的参数传入,并实现refreshPriorityUI()方法。话不多说,直接上代码——
PopupDialog代码:
public class PopupDialog extends Dialog {
/**
* 自定义Dialog监听器
*/
public interface PriorityListener {
/**
* 回调函数,用于在Dialog的监听事件触发后刷新Activity的UI显示
*/
public void refreshPriorityUI(String string);
}
private PriorityListener listener;
/**
* 带监听器参数的构造函数
*/
public PopupDialog(Context context, int theme, PriorityListener listener) {
super(context, theme);
this.listener = listener;
}
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.popup_dialog);
Button buttonUp = (Button) findViewById(R.id.btn_up);
buttonUp.setOnClickListener(new Button.OnClickListener() {
@Override
public void onClick(View v) {
dismiss();
listener.refreshPriorityUI("数据来自:上");
}
});
}
}
MainActivity代码:
public class MainActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Button button = (Button)findViewById(R.id.btn);
button.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
PopupDialog popupDialog = new PopupDialog(MainActivity.this, R.style.dialog, new PopupDialog.PriorityListener() {
@Override
public void refreshPriorityUI(String string) {
Toast.makeText(MainActivity.this, string, Toast.LENGTH_SHORT).show();
}
});
popupDialog.setCanceledOnTouchOutside(true); // 点击Dialog之外的区域对话框消失
Window window = popupDialog.getWindow();
WindowManager.LayoutParams lp = window.getAttributes();
lp.y = -64; // 设置竖直方向的偏移量
lp.dimAmount = 0f; // 弹出对话框的时候背景不变暗
popupDialog.show();
}
});
}
}
最后效果:
点击“上”之后,MainActivity会调用refreshPriorityUI()方法:
[2] com.cf.vpn.VPNCheck.sendCmd:Permission denied
来源: 互联网 发布时间: 2014-02-18
com.cf.vpn.VPNCheck.sendCmd::Permission denied
2012-02-22 20:57:08.008 com.cf.vpn.VPNCheck.sendCmd::Permission denied
org.apache.harmony.luni.platform.OSNetworkSystem.socket:-2
dalvik.system.BlockGuard$WrappedNetworkSystem.socket:335
org.apache.harmony.luni.net.PlainDatagramSocketImpl.create:110
java.net.DatagramSocket.createSocket:191
java.net.DatagramSocket.<init>:77
com.cf.vpn.VPNCheck.sendDatagramPacket:240
com.cf.vpn.VPNCheck.sendCmd:254
com.cf.vpn.VPNCheck.launchVPNConnection:121
com.cf.vpn.VPNTestTool.clickBtnDial:26
com.cf.vpn.VPNTestTool.access$0:24
com.cf.vpn.VPNTestTool$1.onClick:20
android.view.View.performClick:2574
android.view.View$PerformClick.run:9223
android.os.Handler.handleCallback:587
android.os.Handler.dispatchMessage:92
android.os.Looper.loop:130
android.app.ActivityThread.main:3691
java.lang.reflect.Method.invokeNative:-2
java.lang.reflect.Method.invoke:507
com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run:907
com.android.internal.os.ZygoteInit.main:665
dalvik.system.NativeStart.main:-2
出现以上异常是由于在AndroidManifest.xml文件中没有添加:
<uses-permission android:name="android.permission.INTERNET" />
2012-02-22 20:57:08.008 com.cf.vpn.VPNCheck.sendCmd::Permission denied
org.apache.harmony.luni.platform.OSNetworkSystem.socket:-2
dalvik.system.BlockGuard$WrappedNetworkSystem.socket:335
org.apache.harmony.luni.net.PlainDatagramSocketImpl.create:110
java.net.DatagramSocket.createSocket:191
java.net.DatagramSocket.<init>:77
com.cf.vpn.VPNCheck.sendDatagramPacket:240
com.cf.vpn.VPNCheck.sendCmd:254
com.cf.vpn.VPNCheck.launchVPNConnection:121
com.cf.vpn.VPNTestTool.clickBtnDial:26
com.cf.vpn.VPNTestTool.access$0:24
com.cf.vpn.VPNTestTool$1.onClick:20
android.view.View.performClick:2574
android.view.View$PerformClick.run:9223
android.os.Handler.handleCallback:587
android.os.Handler.dispatchMessage:92
android.os.Looper.loop:130
android.app.ActivityThread.main:3691
java.lang.reflect.Method.invokeNative:-2
java.lang.reflect.Method.invoke:507
com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run:907
com.android.internal.os.ZygoteInit.main:665
dalvik.system.NativeStart.main:-2
出现以上异常是由于在AndroidManifest.xml文件中没有添加:
<uses-permission android:name="android.permission.INTERNET" />
[3] java核心技术小结六
来源: 互联网 发布时间: 2014-02-18
java核心技术总结六
说明
c
创建一个新的或者空的存档文件并加入文件
C
暂时改变目录
e
在清单文件中创建一个条目
f
将jar文件名指定为第二个命令行参数
i
建立索引文件
m
将一个清单文件添加到JAR文件中
M
不为条目创建清单文件
t
显示内容表
u
更新一个已有的JAR文件
v
生成详细的输出结果
x
解压文件
0
第10章
1、用命令打jar包:
选项说明
c
创建一个新的或者空的存档文件并加入文件
C
暂时改变目录
e
在清单文件中创建一个条目
f
将jar文件名指定为第二个命令行参数
i
建立索引文件
m
将一个清单文件添加到JAR文件中
M
不为条目创建清单文件
t
显示内容表
u
更新一个已有的JAR文件
v
生成详细的输出结果
x
解压文件
0
存储,不进行ZIP压缩
例如:要想更新一个已有的JAR文件的清单,则需要将增加的部分加入放置到一个文本文件中:
jar ufm MyArchive.jar manifest -additions.mf
2、清单文件
清单文件被命名为MANIFEST.MF,它位于JAR文件的META-INF子目录中。
清单文件的最后一行必须以换行符结束
3、windows资源包括图像,按钮标签等组成,它们都附属于可执行文件,并通过标准的程序设计访问。
4、密封:
可以将java包密封以保证不会有其他的类加入到其中。
在默认情况下,jar文件中的包是没有密封的,可以在清单文件中的主节中加入Sealed:true 这句话来改变全局的默认设定
5、沙箱:受限制的执行环境
安全管理器将检查有权使用所有系统的资源。在默认的情况下,只允许执行那些无害的操作。
在沙箱中运行的代码不能修改或查看用户系统。
6、属性映射:它是一种存储键/值对的数据结构,其特性为:
1)、键和值都是字符串
2)、键/值对可疑很容易地写入文件或者从文件中读出
3)、用二级表存放默认值。
7、使用属性文件存在一些不足:
1)、配置文件不能存放在用户的主目录中。因为像windows 9x这样的系统没有主目录的概念。
2)、没有标准的为配置文件命名的规则
最新技术文章: