当前位置:  编程技术>移动开发
本页文章导读:
    ▪传接对象        传递对象 这些人一直问传递对象 以前也有一个这里做一个简单的: import android.os.Parcel; import android.os.Parcelable; public class Person implements Parcelable { private String Name = "anupama"; private String A.........
    ▪ NSArray的根本操作代码        NSArray的基本操作代码     /*---------------------------创建数组------------------------------*/     //NSArray *array = [NSArray alloc] initWithObjects:    @"One",@"Two",@"Three",@"Four",nil];    self.dataArray = array;    .........
    ▪ 定做自己的ListView       定制自己的ListView 自定义布局需要哪些东西? 1、数据模型(数据) 2、显示数据的组件  3、重写BaseAdapter中的相关方法    数据模型代码: package cc.androidos.layout;public class RSS { private Strin.........

[1]传接对象
    来源: 互联网  发布时间: 2014-02-18
传递对象

这些人一直问传递对象 以前也有一个这里做一个简单的:

import android.os.Parcel;
import android.os.Parcelable;
 
public class Person implements Parcelable
{
 
    private String Name = "anupama";
    private String Address = "India";
    private int Age = 30;
    
    @Override
    public int describeContents()
    {
        // TODO Auto-generated method stub
        return 0;
    }
 
    @Override
    public void writeToParcel(Parcel dest, int flag)
    {
        // TODO Auto-generated method stub
        dest.writeString(Name);
        dest.writeString(Address);
        dest.writeInt(Age);
    }
    public Person(Parcel in)
    {
        this.Name = in.readString();
        this.Address = in.readString();
        this.Age = in.readInt();
    }
 
    @SuppressWarnings("unchecked")
    public static final Parcelable.Creator CREATOR = new Parcelable.Creator() {
        public Person createFromParcel(Parcel in)
        {
            return new Person(in);
        }
 
        public Person[] newArray(int size)
        {
            return new Person[size];
        }
    };
}

 

Person person = new Person();
intent.putExtra("person",person);
and for reading back use like this.
Person person = (Person)data.getParcelableExtra(name);

 


    
[2] NSArray的根本操作代码
    来源: 互联网  发布时间: 2014-02-18
NSArray的基本操作代码

    /*---------------------------创建数组------------------------------*/

    //NSArray *array = [NSArray alloc] initWithObjects:
    @"One",@"Two",@"Three",@"Four",nil];

    self.dataArray = array;
    [array release];

    //- (unsigned) Count;数组所包含对象个数;
    NSLog(@"self.dataArray cound:%d",[self.dataArray count]);

    //- (id) objectAtIndex: (unsigned int) index;获取指定索引处的对象;
    NSLog(@"self.dataArray cound 2:%@",[self.dataArray objectAtIndex:2]);


    /*--------------------------从一个数组拷贝数据到另一数组(可变数级)----------------------------*/    

    //arrayWithArray:
    //NSArray *array1 = [NSArray alloc] init];
    NSMutableArray *MutableArray = [NSMutableArray alloc] init];
    NSArray *array = [NSArray arrayWithObjects:
                      @"a",@"b",@"c",nil];
    NSLog(@"array:%@",array);
    MutableArray = [NSMutableArray arrayWithArray:array];
    NSLog(@"MutableArray:%@",MutableArray);

    array1 = [NSArray arrayWithArray:array];
    NSLog(@"array1:%@",array1);


    //Copy

    //id obj;
    NSMutableArray *newArray = [NSMutableArray alloc] init];
    NSArray *oldArray = [NSArray arrayWithObjects:
                         @"a",@"b",@"c",@"d",@"e",@"f",@"g",@"h",nil];

    NSLog(@"oldArray:%@",oldArray);
    for(int i = 0; i < [oldArray count]; i++)
    {        
        obj = [oldArray objectAtIndex:i] copy];
        [newArray addObject: obj];
    }
    //     
    NSLog(@"newArray:%@", newArray);
    [newArray release];


    //快速枚举

    //NSMutableArray *newArray = [NSMutableArray alloc] init];
    NSArray *oldArray = [NSArray arrayWithObjects:
                         @"a",@"b",@"c",@"d",@"e",@"f",@"g",@"h",nil];    
    NSLog(@"oldArray:%@",oldArray);

    for(id obj in oldArray)
    {
        [newArray addObject: obj];
    }
    //     
    NSLog(@"newArray:%@", newArray);
    [newArray release];    


    //Deep copy

    //NSMutableArray *newArray = [NSMutableArray alloc] init];
    NSArray *oldArray = [NSArray arrayWithObjects:
                         @"a",@"b",@"c",@"d",@"e",@"f",@"g",@"h",nil];    
    NSLog(@"oldArray:%@",oldArray);    
    newArray = (NSMutableArray*)CFPropertyListCreateDeepCopy(kCFAllocatorDefault, (CFPropertyListRef)oldArray, kCFPropertyListMutableContainers);
    NSLog(@"newArray:%@", newArray);
    [newArray release];    


    //Copy and sort

    //NSMutableArray *newArray = [NSMutableArray alloc] init];
    NSArray *oldArray = [NSArray arrayWithObjects:
                         @"b",@"a",@"e",@"d",@"c",@"f",@"h",@"g",nil];    
    NSLog(@"oldArray:%@",oldArray);
    NSEnumerator *enumerator;
    enumerator = [oldArray objectEnumerator];
    id obj;
    while(obj = [enumerator nextObject])
    {
        [newArray addObject: obj];
    }
    [newArray sortUsingSelector:@selector(compare:)];
    NSLog(@"newArray:%@", newArray);
    [newArray release];



    /*---------------------------切分数组------------------------------*/

    //从字符串分割到数组- componentsSeparatedByString:
    NSString *string = [NSString alloc] initWithString:@"One,Two,Three,Four"];
    NSLog(@"string:%@",string);    
    NSArray *array = [string componentsSeparatedByString:@","];
    NSLog(@"array:%@",array);
    [string release];


    //从数组合并元素到字符串- componentsJoinedByString:
    NSArray *array = [NSArray alloc] initWithObjects:@"One",@"Two",@"Three",@"Four",nil];
    NSString *string = [array componentsJoinedByString:@","];
    NSLog(@"string:%@",string);



    /*******************************************************************************************
     NSMutableArray
     *******************************************************************************************/
    /*---------------给数组分配容量----------------*/
    //NSArray *array;
    array = [NSMutableArray arrayWithCapacity:20];



    /*--------------在数组末尾添加对象----------------*/
    //- (void) addObject: (id) anObject;
    //NSMutableArray *array = [NSMutableArray arrayWithObjects:
    @"One",@"Two",@"Three",nil];
    [array addObject:@"Four"];
    NSLog(@"array:%@",array);



    /*--------------删除数组中指定索引处对象----------------*/    
    //-(void) removeObjectAtIndex: (unsigned) index;    
    //NSMutableArray *array = [NSMutableArray arrayWithObjects:
    @"One",@"Two",@"Three",nil];
    [array removeObjectAtIndex:1];
    NSLog(@"array:%@",array);



    /*-------------数组枚举---------------*/    
    //- (NSEnumerator *)objectEnumerator;从前向后
    //NSMutableArray *array = [NSMutableArray arrayWithObjects:
    @"One",@"Two",@"Three",nil];
    NSEnumerator *enumerator;
    enumerator = [array objectEnumerator];

    id thingie;
    while (thingie = [enumerator nextObject]) {
        NSLog(@"thingie:%@",thingie);
    }


    //- (NSEnumerator *)reverseObjectEnumerator;从后向前
    //NSMutableArray *array = [NSMutableArray arrayWithObjects:
    @"One",@"Two",@"Three",nil];
    NSEnumerator *enumerator;
    enumerator = [array reverseObjectEnumerator];

    id object;
    while (object = [enumerator nextObject]) {
        NSLog(@"object:%@",object);
    }


    //快速枚举
    //NSMutableArray *array = [NSMutableArray arrayWithObjects:
    @"One",@"Two",@"Three",nil];
    for(NSString *string in array)
    {
        NSLog(@"string:%@",string);
    }



    /*******************************************************************************************
     NSDictionary
     *******************************************************************************************/

    /*------------------------------------创建字典------------------------------------*/
    //- (id) initWithObjectsAndKeys;

    //NSDictionary *dictionary = [NSDictionary alloc] initWithObjectsAndKeys:@"One",@"1",@"Two",@"2",@"Three",@"3",nil];
    NSString *string = [dictionary objectForKey:@"One"];
    NSLog(@"string:%@",string);
    NSLog(@"dictionary:%@",dictionary);
    [dictionary release];


    /*******************************************************************************************
     NSMutableDictionary
     *******************************************************************************************/

    /*------------------------------------创建可变字典------------------------------------*/    
    //创建
    NSMutableDictionary *dictionary = [NSMutableDictionary dictionary];

    //添加字典
    [dictionary setObject:@"One" forKey:@"1"];
    [dictionary setObject:@"Two" forKey:@"2"];
    [dictionary setObject:@"Three" forKey:@"3"];
    [dictionary setObject:@"Four" forKey:@"4"];
    NSLog(@"dictionary:%@",dictionary);

    //删除指定的字典
    [dictionary removeObjectForKey:@"3"];
    NSLog(@"dictionary:%@",dictionary);


    /*******************************************************************************************
     NSValue(对任何对象进行包装)
     *******************************************************************************************/

    /*--------------------------------将NSRect放入NSArray中------------------------------------*/    
    //将NSRect放入NSArray中
    NSMutableArray *array = [NSMutableArray alloc] init];
    NSValue *value;
    CGRect rect = CGRectMake(0, 0, 320, 480);    
    value = [NSValue valueWithBytes:&rect objCType:@encode(CGRect)];
    [array addObject:value];
    NSLog(@"array:%@",array);

    //从Array中提取
    value = [array objectAtIndex:0];
    [value getValue:&rect];
    NSLog(@"value:%@",value);


    /*******************************************************************************************
     从目录搜索扩展名为jpg的文件
     *******************************************************************************************/

    //NSFileManager *fileManager = [NSFileManager defaultManager];
    NSString *home;
    home = @"../Users/";

    NSDirectoryEnumerator *direnum;
    direnum = [fileManager enumeratorAtPath: home];

    NSMutableArray *files = [NSMutableArray alloc] init];

    //枚举
    NSString *filename;
    while (filename = [direnum nextObject]) {
        if([filename pathExtension] hasSuffix:@"jpg"]){
            [files addObject:filename];
        }
    }

    //快速枚举
    //for(NSString *filename in direnum)
    //{
    //    if([filename pathExtension] isEqualToString:@"jpg"]){
    //        [files addObject:filename];
    //    }
    //}
    NSLog(@"files:%@",files);

    //枚举
    NSEnumerator *filenum;
    filenum = [files objectEnumerator];
    while (filename = [filenum nextObject]) {
        NSLog(@"filename:%@",filename);
    }

    //快速枚举
    //for(id object in files)
    //{
    //    NSLog(@"object:%@",object);
    //} 


    
[3] 定做自己的ListView
    来源: 互联网  发布时间: 2014-02-18
定制自己的ListView

自定义布局需要哪些东西? 
1、数据模型(数据) 
2、显示数据的组件 
 
3、重写BaseAdapter中的相关方法 

 

数据模型代码:

package cc.androidos.layout;public class RSS {
 private String title; public RSS(String title) {
  this.title = title;
 } public String getTitle() {
  return title;
 } public void setTitle(String title) {
  this.title = title;
 }
 @Override
 public String toString() {
  return title;
 }}

 

显示组件的布局代码:

<?xml version="1.0" encoding="utf-8"?>
<TableLayout android:id="@+id/tablelist"
 android:layout_width="fill_parent" android:layout_height="fill_parent"
 xmlns:android="http://schemas.android.com/apk/res/android">
 <TableRow android:id="@+id/TableRow01" android:layout_width="fill_parent"
  android:layout_height="fill_parent">
  <TextView android:id="@+id/TextView1" android:layout_width="200px"
   android:layout_height="wrap_content" android:text="TextView1"></TextView>
  <ImageButton android:id="@+id/ImageButton01"
   android:layout_width="wrap_content" android:layout_height="wrap_content"
   android:layout_marginLeft="80px"></ImageButton>
 </TableRow>
 
 
</TableLayout>

 

这个Activity和重写BaseAdapter的代码:

package cc.androidos.layout;import java.util.ArrayList;
import java.util.List;import android.app.Activity;
import android.app.ListActivity;
import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Color;
import android.os.Bundle;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageButton;
import android.widget.ImageView;
import android.widget.ListAdapter;
import android.widget.Scroller;
import android.widget.TextView;public class MyLayout extends ListActivity {
 
 //要被显示的数据模型
 public static  List<RSS> dataModel = new ArrayList<RSS>();
 /** Called when the activity is first created. */
 @Override
 public void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  getListView().setSelector(getResources().getDrawable(R.drawable.icon));
  //将组定义的List组件加入到当前的Activity中
  setListAdapter(new MyListAdapter(getApplicationContext()));
  
  dataModel.add(new RSS("title 1"));
  dataModel.add(new RSS("title 2"));
  dataModel.add(new RSS("title 3"));
  dataModel.add(new RSS("title 4"));
 } 
 /*自定义布局组件中用于显示数据的组件类**/
 public class ViewHolder {
  TextView mTextView;
  ImageButton mIcon;
 } // 自定义的布局组件
 public class MyListAdapter extends BaseAdapter {
  private LayoutInflater mInflater = null;
  private Bitmap mIcon1 = null;
  private Bitmap mIcon2 = null;
  private Context mcContext = null;  public MyListAdapter(Context context) {
   this.mcContext = context;
   
   mInflater = LayoutInflater.from(this.mcContext);
   mIcon1 = BitmapFactory.decodeResource(mcContext.getResources(),
     R.drawable.delete);
   mIcon2 = BitmapFactory.decodeResource(mcContext.getResources(),
     R.drawable.delete);
   
  }  @Override
  public int getCount() {
   return dataModel.size();
  }  @Override
  public Object getItem(int position) {
   return dataModel.get(position);
  }  @Override
  public long getItemId(int position) {
   return position;
  }  @Override
  public View getView(int position, View convertView, ViewGroup parent) {
   String tag = "getView";
   final ViewHolder holder;
   if (convertView == null) {
    //使用XML文件填充整个布局
    convertView = mInflater.inflate(R.layout.list, null);
    holder = new ViewHolder();//生成存放数据的组件模型
    holder.mTextView = (TextView) convertView
      .findViewById(R.id.TextView1);
    holder.mIcon = (ImageButton) convertView
      .findViewById(R.id.ImageButton01);
    convertView.setTag(holder);//将存放数据的组件模型加入到整个View视图中
   } else {
    holder = (ViewHolder) convertView.getTag();
   }
   Log.d(tag, "start get View.....");
   
   holder.mTextView.setText(dataModel.get(position).toString());
   holder.mIcon.setImageBitmap((position & 1) == 1 ? mIcon1 : mIcon2);
   holder.mIcon.setOnClickListener(new View.OnClickListener(){
    @Override
    public void onClick(View v) {//设置按钮点击事件
     holder.mTextView.setBackgroundColor(Color.WHITE);
     holder.mIcon.setVisibility(View.VISIBLE);
    }
   });
   return convertView;
  }
 }}

 

这样自定义完成后,显示数据将会有一个图片和一个字符串放在ListActivity中每项中


    
最新技术文章:
▪Android开发之登录验证实例教程
▪Android开发之注册登录方法示例
▪Android获取手机SIM卡运营商信息的方法
▪Android实现将已发送的短信写入短信数据库的...
▪Android发送短信功能代码
▪Android根据电话号码获得联系人头像实例代码
▪Android中GPS定位的用法实例
▪Android实现退出时关闭所有Activity的方法
▪Android实现文件的分割和组装
▪Android录音应用实例教程
▪Android双击返回键退出程序的实现方法
▪Android实现侦听电池状态显示、电量及充电动...
▪Android获取当前已连接的wifi信号强度的方法
▪Android实现动态显示或隐藏密码输入框的内容
▪根据USER-AGENT判断手机类型并跳转到相应的app...
▪Android Touch事件分发过程详解
▪Android中实现为TextView添加多个可点击的文本
▪Android程序设计之AIDL实例详解
▪Android显式启动与隐式启动Activity的区别介绍
▪Android按钮单击事件的四种常用写法总结
▪Android消息处理机制Looper和Handler详解
▪Android实现Back功能代码片段总结
▪Android实用的代码片段 常用代码总结
▪Android实现弹出键盘的方法
▪Android中通过view方式获取当前Activity的屏幕截...
▪Android提高之自定义Menu(TabMenu)实现方法
▪Android提高之多方向抽屉实现方法
▪Android提高之MediaPlayer播放网络音频的实现方法...
▪Android提高之MediaPlayer播放网络视频的实现方法...
▪Android提高之手游转电视游戏的模拟操控
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3