![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Android 入门
tiantao2012
这个作者很懒,什么都没留下…
展开
-
Buttons
button上可以显示文本或者图标,或者同时显示文本和图标.如下:android:text="@string/button_text" 仅显示文本。 android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/button_text原创 2016-08-09 09:43:14 · 576 阅读 · 0 评论 -
Managing Network Usage
可以通过connectivity service 来判断是否有wifi或者mobile连接到networkprivate static final String DEBUG_TAG = "NetworkStatusExample";...ConnectivityManager connMgr = (ConnectivityManager) getSystemServi原创 2016-08-22 19:23:51 · 685 阅读 · 0 评论 -
Parsing XML Data
推荐使用XmlPullParser 来parse xml中的内容。下面是XMl的例子newest questions tagged android - Stack Overflow... ... http://stackoverflow.com/q/9439999 0 Where原创 2016-08-22 19:52:53 · 620 阅读 · 0 评论 -
RadioButton
Radio buttons 只运行用户选择一个选项,一般都是在RadioGroup中放置一组Radio buttons 如下所示: android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="vertical">原创 2016-08-11 09:16:53 · 601 阅读 · 0 评论 -
Toggle Buttons
Toggle button给用户提供两选一的方案,例如on/off。只允许用户选择其中的一个.你可以直接在layout文件中添加一个Toggle button。Toggle button 同样也是CompoundButton的子类,可以调用CompoundButton.setCheck() 或者CompoundButton.toggle()来自己改变Toggle button的状态。在ac原创 2016-08-11 09:23:53 · 581 阅读 · 0 评论 -
Spinners
spinners 提供一种从一组选项中快速的选择一个。在默认状态下,spinner显示当前的默认值,触摸spinner组件的话,会显示一个下来菜单,提供所有可以选择的值,供用户选择一个新的选项.你可以在layout文件中添加spinner组件,如下所示。 android:id="@+id/planets_spinner" android:layout_width="fi原创 2016-08-11 09:50:52 · 475 阅读 · 0 评论 -
Modifying your Download Patterns Based on the Connectivity Type
可以根据网络的类型来选择下载数据的大小如下来网络分成WIFI,LTE,HSPAP,EDGE,GPRS下载的size是不一样的ConnectivityManager cm = (ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE);TelephonyManager tm = (Telepho原创 2016-08-23 10:00:22 · 820 阅读 · 0 评论 -
Configuring Auto Backup for Apps
要备份数据到云端。首先要在manifest文件中定义需要和不需要备份的数据. xmlns:tools="http://schemas.android.com/tools" package="com.my.appexample"> android:fullBackupContent="@xml/myba原创 2016-08-23 10:39:00 · 587 阅读 · 0 评论 -
Using the Backup API
要使用Android Backup Service必须要先向google 注册后得到一个key,然后在manifest文件中添加metedata 如下 android:backupAgent="TheBackupAgent"> ... android:value="ABcDe1FGHij2KlmN3oPQRs4TUvW5xYZ" />原创 2016-08-23 11:04:33 · 541 阅读 · 0 评论 -
Connecting to the Network
在试图连接到network的时候要使用connectivity service 减少是否有连接到network.public void myClickHandler(View view) { ... ConnectivityManager connMgr = (ConnectivityManager) getSystemService(Context.CO原创 2016-08-22 15:45:47 · 492 阅读 · 0 评论 -
Search 之Adding Recent Query Suggestions
添加最近用户搜索选项是很好的用户体验第一步。实现SearchRecentSuggestionsProvider的子类,并在构造方法中调用setupSuggestions方法.public class MySuggestionProvider extends SearchRecentSuggestionsProvider { public final static Stri原创 2016-08-22 11:33:41 · 595 阅读 · 0 评论 -
Adding an Easy Share Action
ShareActionProvider 提供一种简单的方式通过Intent发送数据给其他application,如Google+ 微信等。 ShareActionProvider一般嵌入到当前UI中。要使用 ShareActionProvider 必须在menu 资源中定义 android:actionProviderClass如下所示: andr原创 2016-08-10 14:49:23 · 534 阅读 · 0 评论 -
Saving Data in SQL Databases
首先一般会创建一个BaseColumns的子类,来定义你需要用的栏位public final class FeedReaderContract { // To prevent someone from accidentally instantiating the contract class, // give it an empty constructor. pu原创 2016-08-09 10:48:53 · 439 阅读 · 0 评论 -
textFields
textField 允许用户在你的app UI上输入text。可以是单行或者多行.将光标放在text field上会在动现在软键盘.除了输入text外,你可以选择text来进行拷贝/剪贴/复制。以及还可以自动补全.一个在layout文件中定义的EditType 如下: android:id="@+id/email_address" android:layout_widt原创 2016-08-09 13:55:09 · 698 阅读 · 0 评论 -
Sending the User to Another App
Android 最重要的特性就是app 可以发送数据让另外一个app来运行。假如你的app有旅行的数据需要显示在地图上,这时候没必要在app中建立一个地图。你可以用一个隐式Intent来新建一个request。Android 系统就开启动一个可以在地图上显示地址的app.那如何建立一个隐式的Intent呢?隐式的Intent 不需要指定准确的名字,但是需要指定一个action且一般都带有要原创 2016-08-09 16:05:01 · 423 阅读 · 0 评论 -
Getting a Result from an Activity
一般情况下我们会通过startActivity()来启动一个activity,但是如果我们想获得要启动的activity的结果的时候就需要调用startActivityForResult().并且重写 onActivityResult() 。static final int PICK_CONTACT_REQUEST = 1; // The request code...private原创 2016-08-09 19:28:18 · 482 阅读 · 0 评论 -
Allowing Other Apps to Start Your Activity
当系统发送一个Intent时,哪些activity需要写响应呢?这部分是有Intent Filter决定的。如下所示: action 表示要响应的动作.例如ACTION_SEND/ACTION_VIEW。data 表示Intent携带的数据.必须要用Android:mimeTy原创 2016-08-09 19:48:41 · 610 阅读 · 0 评论 -
checkbox
checkboxes提供一个让用户可以选择一个或者多个设定,你可以在layout文件中添加一个或多个checkbox,每一个checkbox都是独立管理的。可以为每一个checkbox注册一个listerner如下所示checkbox的回调函数都是android:onClick="onCheckboxClicked" android:orientation="vertical原创 2016-08-10 11:23:00 · 596 阅读 · 0 评论 -
Sending Simple Data to Other Apps
当构建一个Intent,必须制定一个action来触发其他action。你可以指定Intent 携带数据的类型。Send Text Content可以用ACTION_SEND将text 内容从一个activity 发送到另外一个activity。下面这个子类中用ACTION_SEND 触发动作,用setType来指定类型,用putExtra来携带数据.Intent原创 2016-08-10 14:13:25 · 608 阅读 · 0 评论 -
Receiving Simple Data from Other Apps
application 可以很容易的接收其他application发送过来的数据。具体要怎么做呢?Update Your Manifestmanifest文件中的Intent filter 可以指定application愿意接收的数据类型和需要响应的action,下面就是一个例子.原创 2016-08-10 14:27:04 · 432 阅读 · 0 评论 -
Transmitting Network Data Using Volley 之Sending a Simple Request
要使用volley,需要在manifest中天剑INTERNET权限使用newRequestQueue方法建立一个requestQueuefinal TextView mTextView = (TextView) findViewById(R.id.text);...// Instantiate the RequestQueue.RequestQueue queue =原创 2016-08-23 14:52:30 · 423 阅读 · 0 评论 -
Pickers
Android 提供了time picker 和 data picker可以让用户选择有效的时间和日期.可以使用DialogFragment 来显示一个TimePickerDialog。这样的话,必须实现DialogFragment 的子类,然后在fragment的onCreateDialog()中返回TimePickerDialog。其次必须要实现TimePickerDialog.Ontim原创 2016-08-11 14:06:03 · 509 阅读 · 0 评论 -
Multi-Window Support
在Android 7.0之后,多个app可以同时在屏幕上显示。这并不改变app的生命周期。要支持分屏,首先在下面添加resizeableActivityandroid:resizeableActivity=["true" | "false"]要实现PictureInPicture,需要设定supportsPictureInPictureandroid:supportsPicture原创 2016-08-24 09:25:24 · 885 阅读 · 0 评论 -
Changing Location Settings
app要使用location service来需要在xml中声明权限. package="com.google.android.gms.location.sample.basiclocationsample" > 建立LocationRequestprotected void createLocationRequest() { LocationRe原创 2016-08-24 19:59:48 · 845 阅读 · 0 评论 -
Running in a Background Service 之Creating a Background Service
IntentService 不能和UI交互,如果想将结果呈现在UI上,必须将结果发给Activity,让其帮忙显示其次IntentService 只能顺序的处理Request,如果上一个Request没有处理完,则发送一个Request的时候必须等待.IntentService 中的操作不能被中断.一般通过实现IntentService的子类来新建一个IntentService原创 2016-08-26 13:34:30 · 860 阅读 · 0 评论 -
Running in a Background Service 之Sending Work Requests to the Background Service
可以通过新建一个intent,然后通过startService的方式启动这个IntentService。mServiceIntent = new Intent(getActivity(), RSSPullService.class);mServiceIntent.setData(Uri.parse(dataUrl));setData中携带需要IntentService需要处理的数据原创 2016-08-26 13:41:12 · 661 阅读 · 0 评论 -
Running in a Background Service 之Reporting Work Status
可以使用LocalBroadcastManager 将数据返回给Activity,LocalBroadcastManager 会限制Broadcast只在当前app内部。public final class Constants { ... // Defines a custom Intent action public static final String BR原创 2016-08-26 13:53:44 · 821 阅读 · 0 评论 -
Loading Data in the Background 之Running a Query with a CursorLoader
Cursorloader 执行异步的查询contentprovider要在Activity 中使用CursorLoader,需要实现LoaderCallbacks接口public class PhotoThumbnailFragment extends FragmentActivity implements LoaderManager.LoaderCallbacks {原创 2016-08-26 14:51:29 · 655 阅读 · 0 评论 -
Loading Data in the Background 之Handling the Results
为了显示cursor的数据,一般会用view + adapterView的方式。然后在onLoadFinished()方法中更新adapter如下所示:public String[] mFromColumns = { DataProviderContract.IMAGE_PICTURENAME_COLUMN};public int[] mToFields = {原创 2016-08-26 14:57:13 · 628 阅读 · 0 评论 -
menus
menu 基本可以分分成下面三类。Options menu and app bar/Context menu and contextual action mode/Popup menu.可以子啊xml中定义menu,下面是个实例 android:icon="@drawable/ic_new_game" android:title=原创 2016-08-15 10:32:14 · 465 阅读 · 0 评论 -
Sharing Files with NFC ->Sending Files to Another Device
如果通过Android Beam file transfer将大量的文件从一个device发送到另外一个device呢?首先在manifest文件中定义NFC的权限和feature. android:required="true" />android:required="true" 也可以设定为fals,这样的话就需要在runtime时来判断hw是否support NF原创 2016-08-15 11:15:17 · 454 阅读 · 0 评论 -
Getting the Last Known Location
app要使用location service来需要在xml中声明权限. package="com.google.android.gms.location.sample.basiclocationsample" > 需要GoogleAPIClient 的实例,如下所示// Create an instance of GoogleAPIClient.if (原创 2016-08-24 17:54:44 · 744 阅读 · 0 评论 -
Retrieving File Information
可以通过查询提供文件app的FileProvide来得到文件的MIME 和 size.在得到文件的Uri后,可以调用ContentResolve.getType()来得到文件的类型.FileProvide是根据文件的后缀名来得到文件的类型. Uri returnUri = returnIntent.getData(); String mimeType = getContentResol原创 2016-08-12 14:24:51 · 2109 阅读 · 0 评论 -
Requesting a Shared File
要求其他app共享文件,一般调用startActivityForResult(Intent),并设定action为ACTION_PICK 和MIME type.如下所示requestFile的实现:public class MainActivity extends Activity { private Intent mRequestFileIntent; private原创 2016-08-12 14:15:21 · 363 阅读 · 0 评论 -
View Animation
可以在xml或者java code中定义view 动画一般放在res/anim/hyperspace_jump.xml下面,包含四种变化alpha,scale,translate,rotate,set节点下可以放置一组动画 android:interpolator="@android:anim/accelerate_decelerate_interpolato原创 2016-08-24 09:51:40 · 479 阅读 · 0 评论 -
Drawable Animation
Drawable是通过load一系列的drawable 资源来实现动画的.Drawable动画的资源一般放在res/drawable/例如下面rocket_thrust.xml这个动画有三帧,oneshot是只播放一次。 android:oneshot="true"> 下面是具体code的实现。AnimationDra原创 2016-08-24 09:59:45 · 537 阅读 · 0 评论 -
Setting Up a RequestQueue
RequestQueue需要network和cache才能完成传输.newwork在volley中是通过basicNetwork实现,cache是通过DiskBasedCache来实现.下面是实现RequestQueue的例子.RequestQueue mRequestQueue;// Instantiate the cacheCache cache = n原创 2016-08-24 11:00:16 · 487 阅读 · 0 评论 -
Making a Standard Request
volley 默认支持三种类型的request,stringQueue,ImageRequest,JsonObjectRequest。volley提供了三种类来request image。分别是ImageRequest,Imageloader,NetworkImageView下例是使用ImageRequest的例子.ImageView mImageView;String url =原创 2016-08-24 13:30:44 · 508 阅读 · 0 评论 -
Implementing a Custom Request
如果volley 默认支持三种类型的request不能满足开发的需求,可以客制化request.第一步要实现Request的子类public class GsonRequest extends Request { private final Gson gson = new Gson(); private final Class clazz; private fin原创 2016-08-24 13:38:58 · 383 阅读 · 0 评论 -
Input Events
Android 系统提供了很多中方法和用户交互.最好的方式是捕捉和用户交互view的事件。view 类提供这种方法.Event Listeners:event listener 是一个可以和view class 交互的方法。用户在和UI组件交互是会触发这个UI组件注册的event listner.主要分为以下几个callback函数.onClick():View.OnClickList原创 2016-08-12 10:08:54 · 461 阅读 · 0 评论