这些人一直问传递对象 以前也有一个这里做一个简单的:
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);
/*---------------------------创建数组------------------------------*/
//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);
//}
自定义布局需要哪些东西?
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中每项中