|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
一个人负责协调他们的工作并且如果有新增加的衣服或者要移除之前的衣服通知他俩(NSManagedObjectContext)NSManagedObject本博客为人人先容android中的绝对对照庞大的控件,但愿对人人能有所匡助,上面顺次来看看吧!!
1、ListView
我们利用ListView来显现两列,一列暗示用户名,一列暗示用户的IP地点
在main.xml中设置全体结构:
- <?xmlversion="1.0"encoding="utf-8"?>
- <LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent"
- android:orientation="vertical">
- <LinearLayout
- android:id="@+id/listLinearLayout"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:orientation="vertical">
- <ListView
- <spanstyle="color:#ff0000;">android:id="@id/android:list"
- </span>android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:drawSelectorOnTop="false"
- android:scrollbars="vertical">
- </ListView>
- </LinearLayout>
- </LinearLayout>
个中,必需要加上白色标记部分,用来暗示ListView的ID,不然体系启动会报错,其次,我们还得要有一个结构文件,它用来暗示ListView中各列显现的结构,我这里取名为user.xml:
- <?xmlversion="1.0"encoding="utf-8"?>
- <LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent"
- android:orientation="horizontal"
- android:paddingLeft="10dip"
- android:paddingRight="10dip"
- android:paddingTop="1dip"
- android:paddingBottom="1dip">
- <TextViewandroid:id="@+id/user_name"
- android:layout_width="180dip"
- android:layout_height="30dip"
- android:textSize="10pt"
- android:singleLine="true"/>
- <TextViewandroid:id="@+id/user_ip"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent"
- android:textSize="10pt"
- android:gravity="right"/>
- </LinearLayout>
好了,接上去界说我们的Activity类,这个类需承继自ListActivity:
- packagecom.test;
- importjava.util.ArrayList;
- importjava.util.HashMap;
- importjava.util.List;
- importandroid.app.ListActivity;
- importandroid.os.Bundle;
- importandroid.view.View;
- importandroid.widget.ListView;
- importandroid.widget.SimpleAdapter;
- publicclassListViewActivityextendsListActivity{
- @Override
- publicvoidonCreate(BundlesavedInstanceState){
- super.onCreate(savedInstanceState);
- setContentView(R.layout.main);
- //创立一个list对象,为个中增添响应的信息
- List<HashMap<String,String>>list=newArrayList<HashMap<String,String>>();
- HashMap<String,String>map1=newHashMap<String,String>();
- HashMap<String,String>map2=newHashMap<String,String>();
- HashMap<String,String>map3=newHashMap<String,String>();
- map1.put("user_name","zhangsan");
- map1.put("user_ip","192.168.1.5");
- map2.put("user_name","lisi");
- map2.put("user_ip","192.168.1.6");
- map3.put("user_name","wangwu");
- map3.put("user_ip","192.168.1.7");
- list.add(map1);
- list.add(map2);
- list.add(map3);
- //暗示ListView中的两列
- SimpleAdapterlistAdapter=newSimpleAdapter(this,list,R.layout.user,
- newString[]{"user_name","user_ip"},newint[]{
- R.id.user_name,R.id.user_ip});
- this.setListAdapter(listAdapter);
- }
- //参数:ListView自己,被点击控件的对象,地位,id
- @Override
- protectedvoidonListItemClick(ListViewl,Viewv,intposition,longid){
- super.onListItemClick(l,v,position,id);
- System.out.println("id:"+id);
- System.out.println("position:"+position);
- }
- }
注重SimpleAdapter中的参数先容:1、以后对象2、list数据,个中的键值要与user.xml中的各TextView中的id要一样3、界说寄存内容的结构文件,下面我们已提到了4、找寻HashMap中的键值,与HashMap中的键值绝对应5、user.xml中结构文件的ID
onListItemClick是点击每行所触发的事务,我们能够失掉响应的信息!
必要一致的中央:HashMap中的键值、newString中字符数组、user.xml中控件ID要分歧,如许我们的ListView页面就出来了!!
<br>
2、TabHost:就是分页卡,像我们手机中的已接来电、未接来电、全体通话等等
借用下面的ListView,我们利用TabHost,一个页面用来显现下面ListView中的信息,另外一个页面用来显现hello字符串信息
把下面Listview中的结构文件、user.xml文件、和ListActivity拷贝到项目中来,由于这些都必要用到,新建TabHost的结构文件tab.xml:
- <?xmlversion="1.0"encoding="utf-8"?>
- <TabHostxmlns:android="http://schemas.android.com/apk/res/android"
- android:id="@android:id/tabhost"android:layout_width="fill_parent"
- android:layout_height="fill_parent">
- <LinearLayoutandroid:orientation="vertical"
- android:layout_width="fill_parent"android:layout_height="fill_parent"
- android:padding="5dp">
- <TabWidgetandroid:id="@android:id/tabs"
- android:layout_width="fill_parent"android:layout_height="wrap_content"/>
- <FrameLayoutandroid:id="@android:id/tabcontent"
- android:layout_width="fill_parent"android:layout_height="fill_parent"
- android:padding="5dp">
- <TextViewandroid:id="@+id/hello"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:text="@string/hello"/>
- </FrameLayout>
- </LinearLayout>
- </TabHost>
注重:利用TabHost中的结构就必需依照TabHost内里响应的结构举行,不然会报错;接上去我们在Activity中将ListView及文本到场到TabHost中:
- packagecom.harder.xin;
- importandroid.app.TabActivity;
- importandroid.content.Intent;
- importandroid.content.res.Resources;
- importandroid.os.Bundle;
- importandroid.widget.TabHost;
- publicclassMainActivityextendsTabActivity{
- @Override
- publicvoidonCreate(BundlesavedInstanceState){
- super.onCreate(savedInstanceState);
- setContentView(R.layout.tab);
- addTab();
- }
- /**
- *增加Tab
- */
- privatevoidaddTab(){
- //失掉以后Activity的TabHost类,针对TabActivity的操纵一般都由这个类完成
- TabHosttabHost=getTabHost();
- //创立TabHost.TabSpec,这个对象代表了一页
- TabHost.TabSpecremoteTabSpec=tabHost.newTabSpec("listpage");
- IntentremoteIntent=newIntent();
- //天生一个Inent对象,该对象指向一个Activity
- remoteIntent.setClass(this,ListViewActivity.class);
- //设置Tab内里的内容
- remoteTabSpec.setContent(remoteIntent);
- //设置Tab里的setIndicator了解为label和icon图标,这里利用的图标是体系内里自带的
- Resourcesres=getResources();
- remoteTabSpec.setIndicator("列表页面",res.getDrawable(android.R.drawable.stat_sys_download));
- //将设置好的TabSpec对象增加到tabHost中
- tabHost.addTab(remoteTabSpec);
- //创立第二个tabHost
- TabHost.TabSpeclocalTabSpec=tabHost.newTabSpec("text");
- localTabSpec.setContent(R.id.hello);
- localTabSpec.setIndicator("文本页面",res.getDrawable(android.R.drawable.stat_sys_upload));
- tabHost.addTab(localTabSpec);
- }
- }
响应的正文在代码中能够晓得,注重:在AndroidMainifest.xml中将TabActivity主界面设置为启动页面,设置好后,我们看到的效果:
<br>
<br>
3、Spinner:android选择框,相称于我们的下拉列表,让我们能够选择响应的数据
数据界说,我们能够在strings.xml中指定命据,也能够本人在代码中把持显现的数据,只是我们在strings.xml中界说的数据不天真,而在代码中把持我们要显现的数据是我们常常用到的,这两种体例的区分是创立ArrayAdapter的体例分歧,上面来看一下:
起首界说我们的结构文件:得在结构文件中到场Spinner标签:
- <?xmlversion="1.0"encoding="utf-8"?>
- <LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent"
- android:orientation="vertical">
- <Spinner
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:id="@+id/planets_spinner"
- />
- </LinearLayout>
经由过程strings.xml界说要显现的数据,在strings.xml中到场string-array数组,大概在values中增加array.xml文件也能够界说:
- <?xmlversion="1.0"encoding="utf-8"?>
- <resources>
- <stringname="hello">HelloWorld,MainActivity!</string>
- <stringname="app_name">Spinner</string>
- <spanstyle="color:#ff0000;"><string-arrayname="planets_array">
- <item>changsha</item>
- <item>zhuzhou</item>
- <item>xiangtan</item>
- <item>hengyang</item>
- <item>huaihua</item>
- </string-array>
- </span></resources>
好了,界说好数据后,经由过程代码显现数据:
- /**
- *经由过程在strings.xml中界说数据来创立Spinner
- *数据是逝世的,不天真
- */
- privatevoidcreateSpinnerByStringXML(){
- //经由过程createFromResource办法创立一个ArrayAdapter对象;
- //第一个参数暗示以后高低文对象
- //第二个参数援用了在strings.xml中界说的String数组
- //第三个参数用来指定Spinner的款式,是一个结构文件ID,该结构文件由android体系供应,也能够交换为本人的结构文件
- ArrayAdapter<CharSequence>adapter=ArrayAdapter.createFromResource
- (this,R.array.planets_array,android.R.layout.simple_spinner_item);
- //设置Spinner中每一个条目标款式,一样是援用android体系供应的一个结构文件
- adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
- spinner.setAdapter(adapter);
- spinner.setPrompt("选择乡村");
- //选择每一个条目后所触发的事务
- spinner.setOnItemSelectedListener(newSpinnerClickListener());
- }
然后在我们界说的Activity的onCreate办法中挪用下面的办法,运转程序便可看到以下页面:
<br>
好了,接上去我们在程序中本人界说数据,我们还必要一个xml文件,用来暗示每条数据显现的结构,下面是用的android内里本人供应的结构款式,我们这里界说为item.xml
- <?xmlversion="1.0"encoding="utf-8"?>
- <LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent"
- android:orientation="vertical">
- <TextView
- android:id="@+id/textViewId"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"/>
- </LinearLayout>
接上去在程序中把持显现:
最重要的就是UINavigationController他是一层一层推进view的打开iPhone里的联系人每点一个联系人屏幕就会像右推到下一个界面这就是UINavigationController在做的事UINavigationController |
|