当前位置:首页 » 安卓系统 » android基类

android基类

发布时间: 2022-01-22 12:08:06

⑴ android中创建片段基类继承framelayout后不用返回当前页面吗

屏幕切换指的是在同一个Activity内屏幕见的切换,最长见的情况就是在一FrameLayout内有多个页面,比如一个系统设置页面;一个个性化设置页面。
通过查看OPhone API文档可以发现,有个android.widget.ViewAnimator类继承至FrameLayout,ViewAnimator类的作用是为FrameLayout里面的View切换提供动画效果。该类有如下几个和动画相关的函数:

setInAnimation:设置View进入屏幕时候使用的动画,该函数有两个版本,一个接受单个参数,类型为android.view.animation.Animation;一个接受两个参数,类型为Context和int,分别为Context对象和定义Animation的resourceID。

java代码:
setOutAnimation: 设置View退出屏幕时候使用的动画,参数setInAnimation函数一样。
showNext: 调用该函数来显示FrameLayout里面的下一个View。
showPrevious: 调用该函数来显示FrameLayout里面的上一个View。
复制代码
一般不直接使用ViewAnimator而是使用它的两个子类ViewFlipper和ViewSwitcher。ViewFlipper可以用来指定FrameLayout内多个View之间的切换效果,可以一次指定也可以每次切换的时候都指定单独的效果。该类额外提供了如下几个函数:

java代码:
isFlipping: 用来判断View切换是否正在进行
setFilpInterval:设置View之间切换的时间间隔 ...

⑵ android 网络请求要进行封装基类么

实例代码: // 封装的ajax网络请求函数 // obj 是一个对象 function AJAX(obj){ //跨域请求 if (obj.dataType == "jsonp") { //在这里 callback 必须是全局变量 保证函数消失的时候 这个变量不可以被销毁 //处理一下函数名(防止多个网络请求 函数名字相同 出现紊乱的情况) var hehe = "callBack" + "_" + new Date().getTime() + "_" + String(Math.random()).replace(".",""); window[hehe] = obj.success; //创建 script标签 var sc = document.createElement("script"); sc.src = obj.url + "?" + "cb=" + hehe; console.log(sc.src); document.body.appendChild(sc); document.body.removeChild(sc); return; } //1、创建 ajax 对象 var ajaxObj = null; if (window.XMLHttpRequest) { ajaxObj = new XMLHttpRequest(); }else{ ajaxObj = new ActiveXObject("Microsoft.XMLHTTP"); } //设置请求的类型 obj.type = obj.type.toUpperCase() "GET"; //如果是get请求 并且需要传递参数 则需要给 url 后面拼接参数 if (obj.type == "GET") { var arr = [];//定义数组 用于把对象存储到数据里面 for (var key in obj.data) { arr.push(key +"="+ obj.data[key]); } //用&分隔数组 让其转化为类似:name=lxl&age=18 的形式 var str = arr.join("&"); obj.url = obj.url +"?"+ str; //拨号 ajaxObj.open(obj.type,obj.url,true); //发送"name=123&age=18" ajaxObj.send(); }else{ var arr = [];//定义数组 用于把对象存储到数据里面 for (var key in obj.data) { arr.push(key +"="+ obj.data[key]); //console.log(arr); } //用&分隔数组 让其转化为类似:name=lxl&age=18 的形式 var str = arr.join("&"); //console.log(str); ajaxObj.open(obj.type,obj.url,true); ajaxObj.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); ajaxObj.send(str); } //监听 ajaxObj.onreadystatechange = function(){ if (ajaxObj.readyState == 4) { if (ajaxObj.status >= 200 && ajaxObj.status < 300 ajaxObj.status == 304) { //请求成功 obj.success(ajaxObj.responseText); }else{ //请求失败 obj.error(ajaxObj.status); } } } } 以上这篇关于ajax网络请求的封装实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

⑶ android四大组件继承哪个父类

Android四组件别activity、service、content provider、broadcast receiver 、android四组件详解 1、activity (1)Activity通单独屏幕(窗口) (2)Activity间通Intent进行通信 (3)android应用每Activity都必须要AndroidManifest.xml配置文件声明否则系统识别执行该Activity 2、service (1)service用于台完用户指定操作service两种: (a)started(启):应用程序组件(activity)调用startService()启服务服务处于started状态 (b)bound(绑定):应用程序组件调用bindService()绑定服务服务处于bound状态 (2)startService()与bindService()区别: (a)started service(启服务)由其组件调用startService()启导致服务onStartCommand()调用服务started状态其命周期与启组件关并且台限期运行即使启服务组件已经销毁服务需要完任务调用stopSelf()停止或者由其组件调用stopService()停止 (b)使用bindService()启用服务调用者与服务绑定起调用者旦退服务终止求同必须同死特点 (3)发员需要应用程序配置文件声明全部service使用标签 (4)Service通位于台运行般需要与用户交互Service组件没图形用户界面Service组件需要继承Service基类Service组件通用于其组件提供台服务或监控其组件运行状态 3、content provider (1)android平台提供Content Provider使应用程序指定数据集提供给其应用程序其应用通ContentResolver类该内容提供者获取或存入数据 (2)需要应用程序间共享数据才需要内容提供者例通讯录数据应用程序使用且必须存储内容提供者处统数据访问式 (3)ContentProvider实现数据共享ContentProvider用于保存获取数据并使其所应用程序见同应用程序间共享数据唯式android没提供所应用共同访问公共存储区 (4)发员直接使用ContentProvider类象数通ContentResolver象实现ContentProvider操作 (5)ContentProvider使用URI唯标识其数据集URIcontent://作前缀表示该数据由ContentProvider管理 4、broadcast receiver (1)应用使用外部事件进行滤兴趣外部事件(电呼入或者数据中国络用)进行接收并做响应广播接收器没用户界面启activity或serice响应收信息或者用NotificationManager通知用户通知用种式吸引用户注意力例闪背灯、震、播放声音等般说状态栏放持久图标用户打并获取消息 (2)广播接收者注册两种别程序态注册AndroidManifest文件进行静态注册 (3)态注册广播接收器特点用注册Activity关掉广播失效静态注册需担忧广播接收器否关闭要设备启状态广播接收器打着说哪怕app本身未启该app订阅广

⑷ android怎么用基类控制标题栏

[html] view plain
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/layout_titlebar"
android:layout_width="match_parent"
android:layout_height="52dp"
android:background="#ed4255" >

<TextView
android:id="@+id/text_title"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:ellipsize="marquee"
android:gravity="center_horizontal|center"
android:singleLine="true"
android:text="标题栏"
android:textColor="#ffffffff"
android:textSize="20dp" />

<TextView
android:id="@+id/button_backward"
android:layout_width="60dp"
android:layout_height="match_parent"
android:drawableLeft="@drawable/back_arrow"
android:drawablePadding="6dp"
android:ellipsize="end"
android:gravity="center"
android:paddingLeft="5dp"
android:singleLine="true"
android:text="返回"
android:textColor="#ffffffff"
android:textSize="18dp"
android:visibility="invisible" />

<TextView
android:id="@+id/button_forward"
android:layout_width="60dp"
android:layout_height="match_parent"
android:layout_alignParentRight="true"
android:drawablePadding="6dp"
android:ellipsize="end"
android:gravity="center"
android:paddingLeft="5dp"
android:singleLine="true"
android:text="提交"
android:textColor="#ffffffff"
android:textSize="18dp"
android:visibility="invisible" />

</RelativeLayout>

⑸ 选题android对话框的基类是什么 a,infodialog b,alertdialog c,dialog d,sysdi

是dialog
Dialog(AlertDialog、ProgressDialog、TimePickerDialog、DatePickerDialog)提示对话框、进度对话框、时间选择对话框、日期选择对话框

⑹ android 有没有基类的概念

有啊,不过在android里面我们叫父类或者抽象类

⑺ android 怎么在基类里操作控件

我们另外写一个Activity的基类BaseActivity,这个类也是继承自FinalActivity,而且在这个基类里面我们可以实现一些公共的方法,这样其他的Activity继承自我们这个BaseActivity基类,既可以使用FinalActivity里面封装好的方法,也可以使用我们在BaseActivity里面扩展的一些公共的方法。如果我们再抽象一层的话,我们可以把这些公共的方法抽象到一个接口里面,然后我们的BaseActivity实现这个接口,这样也可以实现程序的扩展。

下面贴一些我整理的一些代码

首先是抽象出来的一个Activity的接口

/**
* Activity的支持类接口,主要定义了Activity中常用的功能
*
* @Package com.example.myallutils
*
* TODO
* @author ZhaoKaiQiang
*
* @time 2014年5月7日
*/
public interface IBaseActivity {
/**
* 获取Application对象
*
* @return
*/
public abstract Application getApplication();

/**
* 开启服务
*/
public abstract void startService();

/**
* 停止服务
*/
public abstract void stopService();

/**
* 判断是否有网络连接,若没有,则弹出网络设置对话框,返回false
*
* @return
*/
public abstract boolean validateInternet();

/**
*
* 判断是否有网络连接,没有返回false
*
*/
public abstract boolean hasInternetConnected();

/**
* 退出应用
*/
public abstract void isExit();

/**
* 判断GPS是否已经开启.
*
* @return
*/
public abstract boolean hasLocationGPS();

/**
* 判断基站是否已经开启.
*/
public abstract boolean hasLocationNetWork();

/**
* 检查内存卡.
*/
public abstract void checkMemoryCard();

/**
* 获取进度条.
*
* @return
*/
public abstract ProgressDialog getProgressDialog();

/**
* 返回当前Activity上下文.
*/
public abstract Context getContext();

/**
* 获取当前登录用户的SharedPreferences配置.
*/
public SharedPreferences getLoginUserSharedPre();

/**
* 用户是否在线(当前网络是否重连成功)
*/
public boolean getUserOnlineState();

/**
* 设置用户在线状态 true 在线 false 不在线
*
* @param isOnline
*/
public void setUserOnlineState(boolean isOnline);

/**
*
* 发出Notification的method.
*
* @param iconId
* 图标
* @param contentTitle
* 标题
* @param contentText
* 内容
* @param activity
*/
public void PushNotification(int iconId, String contentTitle,
String contentText, Class<?> activity, String from);
}

下面是对这个接口的实现,是所有Activity的基类

/**
* Activity的基类,实现了IActivitySupport接口
*
* @Package com.example.myallutils
*
* TODO
* @author ZhaoKaiQiang
*
* @time 2014年5月7日
*/
public abstract class BaseActivity extends FinalActivity implements
IBaseActivity {

protected Context mContext = null;
protected SharedPreferences preferences;
protected MyApplication myApplication;
protected ProgressDialog pg = null;
protected NotificationManager notificationManager;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mContext = this;
preferences = getSharedPreferences("TAG", 0);
notificationManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
pg = new ProgressDialog(mContext);
myApplication = (MyApplication) getApplication();

}

/**
* 初始化页面布局
*/
abstract void iniView();

@Override
protected void onStart() {
super.onStart();
}

@Override
protected void onResume() {
super.onResume();
}

@Override
protected void onPause() {
super.onPause();
}

@Override
protected void onStop() {
super.onStop();
}

@Override
public void onDestroy() {
super.onDestroy();
}

@Override
public ProgressDialog getProgressDialog() {
return pg;
}

/**
* 在这里开启所有需要开启的服务
*/
@Override
public void startService() {

}

/**
* 在这里关闭所有需要开启的服务
*/
@Override
public void stopService() {

}

/**
* 停止服务并结束所有的Activity退出应用
*/
@Override
public void isExit() {
new AlertDialog.Builder(mContext).setTitle("确定退出吗?")
.setNeutralButton("确定", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
stopService();
myApplication.exit();
}
})
.setNegativeButton("取消", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.cancel();
}
}).show();
}

/**
* 判断是否有网络连接,没有返回false
*/
@Override
public boolean hasInternetConnected() {
ConnectivityManager manager = (ConnectivityManager) mContext
.getSystemService(Context.CONNECTIVITY_SERVICE);
if (manager != null) {
NetworkInfo network = manager.getActiveNetworkInfo();
if (network != null && network.isConnectedOrConnecting()) {
return true;
}
}
return false;
}

/**
* 判断是否有网络连接,若没有,则弹出网络设置对话框,返回false
*/
@Override
public boolean validateInternet() {
ConnectivityManager manager = (ConnectivityManager) mContext
.getSystemService(Context.CONNECTIVITY_SERVICE);
if (manager == null) {
openWirelessSet();
return false;
} else {
NetworkInfo[] info = manager.getAllNetworkInfo();
if (info != null) {
for (int i = 0; i < info.length; i++) {
if (info[i].getState() == NetworkInfo.State.CONNECTED) {
return true;
}
}
}
}
openWirelessSet();
return false;
}

/**
* 判断GPS定位服务是否开启
*/
@Override
public boolean hasLocationGPS() {
LocationManager manager = (LocationManager) mContext
.getSystemService(Context.LOCATION_SERVICE);
if (manager
.isProviderEnabled(android.location.LocationManager.GPS_PROVIDER)) {
return true;
} else {
return false;
}
}

/**
* 判断基站定位是否开启
*/
@Override
public boolean hasLocationNetWork() {
LocationManager manager = (LocationManager) mContext
.getSystemService(Context.LOCATION_SERVICE);
if (manager
.isProviderEnabled(android.location.LocationManager.NETWORK_PROVIDER)) {
return true;
} else {
return false;
}
}

/**
* 检查内存卡可读
*/
@Override
public void checkMemoryCard() {
if (!Environment.MEDIA_MOUNTED.equals(Environment
.getExternalStorageState())) {
new AlertDialog.Builder(mContext)
.setTitle("检测内存卡")
.setMessage("请检查内存卡")
.setPositiveButton("设置",
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog,
int which) {
dialog.cancel();
Intent intent = new Intent(
Settings.ACTION_SETTINGS);
mContext.startActivity(intent);
}
})
.setNegativeButton("退出",
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog,
int which) {
dialog.cancel();

}
}).create().show();
}
}

/**
* 打开网络设置对话框
*/
public void openWirelessSet() {
AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(mContext);
dialogBuilder
.setTitle("网络设置")
.setMessage("检查网络")
.setPositiveButton("网络设置",
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog,
int which) {
dialog.cancel();
Intent intent = new Intent(
Settings.ACTION_WIRELESS_SETTINGS);
mContext.startActivity(intent);
}
})
.setNegativeButton("取消", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int whichButton) {
dialog.cancel();
}
});
dialogBuilder.show();
}

/**
* 关闭键盘
*/
public void closeInput() {
InputMethodManager inputMethodManager = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
if (inputMethodManager != null && this.getCurrentFocus() != null) {
inputMethodManager.hideSoftInputFromWindow(this.getCurrentFocus()
.getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS);
}
}

/**
*
* 发出Notification
*
* @param iconId
* 图标
* @param contentTitle
* 标题
* @param contentText
* 你内容
* @param activity
*/
@SuppressWarnings("deprecation")
public void PushNotification(int iconId, String contentTitle,
String contentText, Class<?> activity, String to) {

// 创建新的Intent,作为点击Notification留言条时, 会运行的Activity
Intent notifyIntent = new Intent(this, activity);
notifyIntent.putExtra("to", to);
// 创建PendingIntent作为设置递延运行的Activity
PendingIntent appIntent = PendingIntent.getActivity(mContext, 0,
notifyIntent, 0);
/* 创建Notication,并设置相关参数 */
Notification myNoti = new Notification();
// 点击自动消失
myNoti.flags = Notification.FLAG_AUTO_CANCEL;
/* 设置statusbar显示的icon */
myNoti.icon = iconId;
/* 设置statusbar显示的文字信息 */
myNoti.tickerText = contentTitle;
/* 设置notification发生时同时发出默认声音 */
myNoti.defaults = Notification.DEFAULT_SOUND;
/* 设置Notification留言条的参数 */
myNoti.setLatestEventInfo(mContext, contentTitle, contentText,
appIntent);
/* 送出Notification */
notificationManager.notify(0, myNoti);
}

/**
* 返回上下文对象
*/
@Override
public Context getContext() {
return mContext;
}

/**
* 返回登录用户的SharedPreferences对象
*/
@Override
public SharedPreferences getLoginUserSharedPre() {
return preferences;
}

/**
* 获取用户在线状态
*/
@Override
public boolean getUserOnlineState() {
return false;
}

/**
* 设置用户在线状态
*/
@Override
public void setUserOnlineState(boolean isOnline) {

}

}

⑻ android annotations 怎么写baseactivity 基类

这个要看实际应用用到的功能模块来提取,首先基类必须是抽象类,然后里面包含抽象方法,让子类去实现。

⑼ Android为什么要创建Activity基类以及Activity基类中一般有哪些方法

1、创建基类的原因:根本原因就是要减少重复的代码。
2、有哪些方法:比如你的每个activity上都要显示时间,你就可以把这个做到基类里去。然后每个activity都继承基类,就都有时间了不用各个都写。所以基类里就是写共用的方法。
这样 的好处首先代码量少了,第二维护的时候方便,比如时间出了问题,就只需要改基类就行了不用各个activity都改。

⑽ 安卓开发 有个例子不是很明白

这是安卓给控件绑定事件的基本写法,也是最简单的方法,如果你控件的事件比较少,可以直接这么写,但是如果有很多个按钮,你全写一遍new OnclickListener(){xxxxx};这样很容易出现代码冗余,就可以让activity实现OnclickListener接口,重新Onclick事件,在里面做switch判断,button1.setOnclickListener(this);就可以这样写了。

热点内容
深海迷航密码在哪里 发布:2024-11-15 06:30:23 浏览:303
服务器日志怎么分析 发布:2024-11-15 06:22:04 浏览:525
字体目录在哪个文件夹 发布:2024-11-15 06:20:28 浏览:181
php种子怎么打开 发布:2024-11-15 06:07:01 浏览:346
密码箱的密码忘记了如何开锁 发布:2024-11-15 06:04:41 浏览:956
安卓软件和苹果系统哪个好 发布:2024-11-15 05:48:32 浏览:284
pythonwhileelse 发布:2024-11-15 05:39:10 浏览:672
java文件流上传文件 发布:2024-11-15 05:24:02 浏览:148
linux安装so 发布:2024-11-15 05:22:29 浏览:582
九游版冒险王2适合安卓哪个版本 发布:2024-11-15 05:12:33 浏览:601