android 开发的步骤
生活随笔
收集整理的這篇文章主要介紹了
android 开发的步骤
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
android ui 事件觸發機制Activity 編寫中一般為三部曲
1。bending視圖
setContentView(R.layout.open);2。初始化UI(Button)this.findViewById(R.id.ok);3。綁定事件
ok.setOnClickListener(this);localhost 代表是本機ip 127.0.0.1
在android 模擬器上用 10.0.2.2訪問你的電腦本機因為在android中,每個應用程序是可以實現數據共享的,
對于每一個應用程序程序都擁有一個contentprovider實例進行存儲,
而contentresolver則是用于管理所有程序的contentprovider實例,
通過contentrescolver可以獲得數據,插入數據等……至于getcontentrescolver()就是獲取實例二 。。。。自定義adapter1。extends baseAdapter類2。構造一個有參方法
public UserListAdapter(Context context,List<User> list)
{//2.1 取得布局管理器(為下面的獲取自定義視圖準備)layoutInflater = LayoutInflater.from(context);View view=layoutInflater.inflate(R.layout.list, null);}3.在重寫getView方法中編輯自定義視圖public View getView(int position, View convertView, ViewGroup parent) {ListItemView listItemView = null; if (convertView == null) { listItemView = new ListItemView(); //獲取list_item布局文件的視圖 convertView = layoutInflater.inflate(R.layout.list, null); //獲取控件對象 listItemView.image = (ImageView)convertView.findViewById(R.id.IV_imageItem); listItemView.name= (TextView)convertView.findViewById(R.id.show_name); listItemView.age= (TextView)convertView.findViewById(R.id.show_age); listItemView.name.setText(list.get(position).getName()+"");listItemView.age.setText(list.get(position).getAge()+"歲");listItemView.image.setImageResource(Integer.parseInt(list.get(position).getImage()+""));//設置控件集到convertView convertView.setTag(listItemView); }return convertView;}///4.反射機制drawble包下的所有圖片File[] fields=R.drawble.class.getDeclaredFields();for(Filed field:fields){index=field.getInt(R.drwable.class);//保存圖片idimgList.add(index);}三 。。。。自定義dialog1。extends Dialog. 構造有參方法(注意自定義dialog本身沒有上下文的對象,所以要引入目標Activity對象IndexActivity)public NewBudleDialog(Context context,IndexActivity main) {super(context);this.context=context;this.main=main;}2。 // 重寫它的onCreate@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.open);//自定義布局findView();//初始化控件setListeners(); //監聽}四 SimpleAdapter和gridview在幫助文檔中挺好的五 動態給editText賦值的時候,int類型要轉換為String(不然報source Id String 錯誤)六 Button和listItemOnClkic ,焦點覆蓋問題七 SlidingDrawer(上下屏車換)iv= (ImageView) this.findViewById(R.id.handle);drawer.setOnDrawerOpenListener(new MyDrawerOpenListener());drawer.setOnDrawerCloseListener(new MyDrawerCloseListener());}class MyDrawerOpenListener implements OnDrawerOpenListener{@Overridepublic void onDrawerOpened() {iv.setImageResource(R.drawable.icon);}}class MyDrawerCloseListener implements OnDrawerCloseListener{@Overridepublic void onDrawerClosed() {iv.setImageResource(R.drawable.bt03);}} class MyOnclick implements OnClickListener{@Overridepublic void onClick(View v) {}}八。 兩個頁面間回調函數A activity 中重寫onActivityResult方法@Overrideprotected void onActivityResult(int requestCode, int resultCode, Intent data) {super.onActivityResult(requestCode, resultCode, data);//tresultCode返回結果值if(requestCode==1&this.RESULT_OK==resultCode)result=data.getExtras().getString("result");Toast.makeText(this,result,Toast.LENGTH_LONG).show();}class Mybnt implements OnClickListener{@Overridepublic void onClick(View arg0) {Intent intent=new Intent(MainActivity.this, b.class);//startActivityForResult跳轉,并設定回調值MainActivity.this.startActivityForResult(intent, 1);}}在B Activity中@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);this.setContentView(R.layout.b);Intent intent=new Intent();intent.putExtra("result","你通過了");this.setResult(this.RESULT_OK,intent);this.finish();}九。contentProvider(數據提供者)繼承一個ContentProviderpublic class UserDao extends ContentProvider{private DBHelper helper;private static final UriMatcher MATCHER=new UriMatcher(UriMatcher.NO_MATCH);public static final String PROVIDER_URL="com.org.userdao";//這里uri必須注冊provider中authorities com.org.userdaostatic{ MATCHER.addURI(PROVIDER_URL, "qingyou", 1);//qingyou為表名稱MATCHER.addURI(PROVIDER_URL, "qingyou/#", 2);}@Overridepublic boolean onCreate() {helper=new DBHelper(this.getContext());return true;}@Overridepublic int delete(Uri uri, String selection, String[] selectionArgs) {int num=0;switch (MATCHER.match(uri)) {case 1:num=helper.getReadableDatabase().delete("qingyou",selection, selectionArgs);break;case 2:long id=ContentUris.parseId(uri);num=helper.getReadableDatabase().delete("qingyou","_id="+id, null); break;}return num;}2.在activity中//注意一定要加qingyou表名稱和前綴content://private Uri uri=Uri.parse("content://com.org.userdao/qingyou");IndexActivity.this.getContentResolver().query(,,"name=? and password=?");十。receive(廣播)1.非常住性Intent intent = new Intent();intent.setAction("com.szy.aaBroadcastReceiver");intent.putExtra("message", "又是一個好人!");TestMainActivity.this.sendBroadcast(intent);//在extends BroadcastReceiverl類中Bundle bundle = this.getResultExtras(false);String tt = bundle.getString("message");2.常住性廣播注冊系統自帶的action3.有序廣播 (按級別分,級別高得到先)//得到后可以截斷:this.abortBroadcast();4.無序廣播(同時發送)十一。服務//1.public class MyService extends Service{private MyBinder binder2;/* 成功綁定Activity和Service后調用該方法 */@Overridepublic IBinder onBind(Intent arg0) {binder2=new MyBinder();return binder2;}/* 解除綁定Activity和Service時調用該方法 */@Overridepublic boolean onUnbind(Intent intent) {return super.onUnbind(intent);}/* 重新綁定Activity和Service時調用該方法 */@Overridepublic void onRebind(Intent intent) {super.onRebind(intent);}/* 當服務第1次創建時調用該方法,只執行一次 */@Overridepublic void onCreate() {super.onCreate();}/* 當開始服務時調用該方法,執行多次 */@Overridepublic void onStart(Intent intent, int startId) {super.onStart(intent, startId);}/* 當服務銷毀時調用該方法,只執行一次 */@Overridepublic void onDestroy() {super.onDestroy();}public void aa(){for(int i=0;i<50;i++){try {Thread.sleep(600);} catch (InterruptedException e) {e.printStackTrace();}System.out.println("aa"+i);}}//注意activity只提供綁定serviceconnection對象,而serviceconnection只能傳遞IBinder//所以只能通過他取得service對象//創建一個binder,寫一個方法為他返回要綁定的Service對象class MyBinder extends Binder implements IBinder{public MyService getMyService(){return MyService.this;}}
}2.在activity中寫1.綁定 Intent intent = new Intent(MainActivity.this, MyService.class);/*MainActivity.this.startService(intent);*/MainActivity.this.bindService(intent, serviceConection,Context.BIND_AUTO_CREATE);2.解綁 /*MainActivity.this.startService(intent);對應是MainActivity.this.stopService(intent)*/MainActivity.this.unbindService(serviceConection);//創建ServiceConnection通過取得service的binder對象class MyServiceConect implements ServiceConnection{@Overridepublic void onServiceConnected(ComponentName arg0, IBinder service) {myService = ((MyService.MyBinder) service).getMyService();myService.aa();myService.bb();}//獲取sdcard存放路徑
String path=Environment.getExternalStorageDirectory()+"/";//獲取外部設備路徑十二 作用android中flag設置 Intent intent = new Intent(this,xxx.class);
//如果activity在task存在,拿到最頂端,不會啟動新的Activity
intent.addFlags(Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT);
//如果activity在task存在,將Activity之上的所有Activity結束掉
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
//默認的跳轉類型,將Activity放到一個新的Task中
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
//如果Activity已經運行到了Task,再次跳轉不會在運行這個Activity
intent.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);
?
總結
以上是生活随笔為你收集整理的android 开发的步骤的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 计算机二级c语言考上机考试吗,计算机二级
- 下一篇: RC专题:阻容串并联电路