package folder.widget;
import anywheresoftware.b4a.B4AMenuItem;
import android.app.Activity;
import android.os.Bundle;
import anywheresoftware.b4a.BA;
import anywheresoftware.b4a.BALayout;
import anywheresoftware.b4a.B4AActivity;
import anywheresoftware.b4a.ObjectWrapper;
import anywheresoftware.b4a.objects.ActivityWrapper;
import java.lang.reflect.InvocationTargetException;
import anywheresoftware.b4a.B4AUncaughtException;
import anywheresoftware.b4a.debug.*;
import java.lang.ref.WeakReference;
public class main extends Activity implements B4AActivity{
static main mostCurrent;
static boolean afterFirstLayout;
static boolean isFirst = true;
private static boolean processGlobalsRun = false;
BALayout layout;
public static BA processBA;
BA activityBA;
ActivityWrapper _activity;
java.util.ArrayList<B4AMenuItem> menuItems;
private static final boolean fullScreen = false;
private static final boolean includeTitle = true;
public static WeakReference<Activity> previousOne;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (isFirst) {
processBA = new BA(this.getApplicationContext(), null, null, "folder.widget", "main");
processBA.loadHtSubs(this.getClass());
float deviceScale = getApplicationContext().getResources().getDisplayMetrics().density;
BALayout.setDeviceScale(deviceScale);
}
else if (previousOne != null) {
Activity p = previousOne.get();
if (p != null && p != this) {
anywheresoftware.b4a.keywords.Common.Log("Killing previous instance (main).");
p.finish();
}
}
if (!includeTitle) {
this.getWindow().requestFeature(android.view.Window.FEATURE_NO_TITLE);
}
if (fullScreen) {
getWindow().setFlags(android.view.WindowManager.LayoutParams.FLAG_FULLSCREEN,
android.view.WindowManager.LayoutParams.FLAG_FULLSCREEN);
}
mostCurrent = this;
processBA.activityBA = null;
layout = new BALayout(this);
setContentView(layout);
afterFirstLayout = false;
BA.handler.postDelayed(new WaitForLayout(), 5);
}
private static class WaitForLayout implements Runnable {
public void run() {
if (afterFirstLayout)
return;
if (mostCurrent.layout.getWidth() == 0) {
BA.handler.postDelayed(this, 5);
return;
}
mostCurrent.layout.getLayoutParams().height = mostCurrent.layout.getHeight();
mostCurrent.layout.getLayoutParams().width = mostCurrent.layout.getWidth();
afterFirstLayout = true;
mostCurrent.afterFirstLayout();
}
}
private void afterFirstLayout() {
activityBA = new BA(this, layout, processBA, "folder.widget", "main");
processBA.activityBA = new java.lang.ref.WeakReference<BA>(activityBA);
_activity = new ActivityWrapper(activityBA, "activity");
anywheresoftware.b4a.Msgbox.isDismissing = false;
initializeProcessGlobals();
initializeGlobals();
anywheresoftware.b4a.objects.ViewWrapper.lastId = 0;
anywheresoftware.b4a.keywords.Common.Log("** Activity (main) Create, isFirst = " + isFirst + " **");
processBA.raiseEvent2(null, true, "activity_create", false, isFirst);
isFirst = false;
if (mostCurrent == null || mostCurrent != this)
return;
processBA.setActivityPaused(false);
anywheresoftware.b4a.keywords.Common.Log("** Activity (main) Resume **");
processBA.raiseEvent(null, "activity_resume");
}
public void addMenuItem(B4AMenuItem item) {
if (menuItems == null)
menuItems = new java.util.ArrayList<B4AMenuItem>();
menuItems.add(item);
}
@Override
public boolean onCreateOptionsMenu(android.view.Menu menu) {
super.onCreateOptionsMenu(menu);
if (menuItems == null)
return false;
for (B4AMenuItem bmi : menuItems) {
android.view.MenuItem mi = menu.add(bmi.title);
if (bmi.drawable != null)
mi.setIcon(bmi.drawable);
mi.setOnMenuItemClickListener(new B4AMenuItemsClickListener(bmi.eventName.toLowerCase(BA.cul)));
}
return true;
}
private class B4AMenuItemsClickListener implements android.view.MenuItem.OnMenuItemClickListener {
private final String eventName;
public B4AMenuItemsClickListener(String eventName) {
this.eventName = eventName;
}
public boolean onMenuItemClick(android.view.MenuItem item) {
processBA.raiseEvent(item.getTitle(), eventName + "_click");
return true;
}
}
public static Class<?> getObject() {
return main.class;
}
private Boolean onKeySubExist = null;
private Boolean onKeyUpSubExist = null;
@Override
public boolean onKeyDown(int keyCode, android.view.KeyEvent event) {
if (onKeySubExist == null)
onKeySubExist = processBA.subExists("activity_keypress");
if (onKeySubExist) {
Boolean res = (Boolean)processBA.raiseEvent2(_activity, false, "activity_keypress", false, keyCode);
if (res == null || res == true)
return true;
}
return super.onKeyDown(keyCode, event);
}
@Override
public boolean onKeyUp(int keyCode, android.view.KeyEvent event) {
if (onKeyUpSubExist == null)
onKeyUpSubExist = processBA.subExists("activity_keyup");
if (onKeyUpSubExist) {
Boolean res = (Boolean)processBA.raiseEvent2(_activity, false, "activity_keyup", false, keyCode);
if (res == null || res == true)
return true;
}
return super.onKeyUp(keyCode, event);
}
@Override
public void onNewIntent(android.content.Intent intent) {
this.setIntent(intent);
}
@Override
public void onPause() {
super.onPause();
if (_activity == null) //workaround for emulator bug (Issue 2423)
return;
anywheresoftware.b4a.Msgbox.dismiss(true);
anywheresoftware.b4a.keywords.Common.Log("** Activity (main) Pause, UserClosed = " + activityBA.activity.isFinishing() + " **");
processBA.raiseEvent2(_activity, true, "activity_pause", false, activityBA.activity.isFinishing());
processBA.setActivityPaused(true);
mostCurrent = null;
if (!activityBA.activity.isFinishing())
previousOne = new WeakReference<Activity>(this);
anywheresoftware.b4a.Msgbox.isDismissing = false;
}
@Override
public void onDestroy() {
super.onDestroy();
previousOne = null;
}
@Override
public void onResume() {
super.onResume();
mostCurrent = this;
anywheresoftware.b4a.Msgbox.isDismissing = false;
if (activityBA != null) { //will be null during activity create (which waits for AfterLayout).
ResumeMessage rm = new ResumeMessage(mostCurrent);
BA.handler.post(rm);
}
}
private static class ResumeMessage implements Runnable {
private final WeakReference<Activity> activity;
public ResumeMessage(Activity activity) {
this.activity = new WeakReference<Activity>(activity);
}
public void run() {
if (mostCurrent == null || mostCurrent != activity.get())
return;
processBA.setActivityPaused(false);
anywheresoftware.b4a.keywords.Common.Log("** Activity (main) Resume **");
processBA.raiseEvent(mostCurrent._activity, "activity_resume", (Object[])null);
}
}
@Override
protected void onActivityResult(int requestCode, int resultCode,
android.content.Intent data) {
processBA.onActivityResult(requestCode, resultCode, data);
}
private static void initializeGlobals() {
processBA.raiseEvent2(null, true, "globals", false, (Object[])null);
}
public anywheresoftware.b4a.keywords.Common __c = null;
public anywheresoftware.b4a.objects.LabelWrapper _label1 = null;
public anywheresoftware.b4a.objects.LabelWrapper _label2 = null;
public widgetservice _widgetservice = null;
public static String _activity_create(boolean _firsttime) throws Exception{
//BA.debugLineNum = 13;BA.debugLine="Sub Activity_Create(Fir
没有合适的资源?快使用搜索试试~ 我知道了~
basic4android 程序实例 一键隐藏文件夹
共31个文件
class:13个
png:4个
java:3个
4星 · 超过85%的资源 需积分: 9 39 下载量 54 浏览量
2013-05-17
06:51:01
上传
评论
收藏 438KB ZIP 举报
温馨提示
basic4android 程序实例 一键隐藏文件夹 安装后将桌面插件放在桌面上,一键ok, 这个带有桌面插件制作方法,是学习basic4android的好材料 可以自定义需要隐藏的文件夹位置和文件夹名称 自动识别外卡名称,当然你也可以自己手动输入 可以设置保护密码(是进入修改的保护密码)别人不知道你显示隐藏了哪个文件
资源推荐
资源详情
资源评论
收起资源包目录
folder.zip (31个子文件)
folder 1
Files
open.png 6KB
folderwidget.bal 3KB
close.png 6KB
Thumbs.db 9KB
l1.bal 2KB
folder.widget.b4a 1KB
widgetservice.bas 1KB
Objects
folder.apk 142KB
src
folder
widget
main.java 11KB
designerscripts
widgetservice.java 7KB
AndroidManifest.xml 1KB
res
xml
widgetservice_info.xml 257B
drawable
open.png 6KB
icon.png 6KB
layout
widgetservice_layout.xml 669B
gen
folder
widget
R.java 836B
classes.dex 253KB
bin
temp.ap_ 142KB
classes
folder
widget
R$layout.class 322B
main$1.class 191B
R$drawable.class 338B
R$attr.class 254B
widgetservice.class 6KB
widgetservice$widgetservice_BR.class 799B
main$WaitForLayout.class 1KB
main.class 9KB
main$B4AMenuItemsClickListener.class 1KB
R$xml.class 314B
R$id.class 362B
main$ResumeMessage.class 1KB
R.class 428B
共 31 条
- 1
资源评论
- zyp0020022014-04-18试了下确实有帮助!
- ZhouSongKe2015-03-31学到了桌面小部件的编程方法。谢谢。
- lululu1692013-11-17对学习basic4android很有帮助。
郑景文
- 粉丝: 5
- 资源: 20
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功