1,确定安卓程序结构
主要4块
main.xml这个就是手机界面的UI结构
R,java 系统资源列表,相当于硬件的system文件(具体怎么生成的待查)
AndroidManifest.xml 系统功能列表,加功能要往里面写代码(不知道除了activity之类的其他类是不是也要往里面写)
mainactivity.java你biancheng 的地方
2,安卓程序流程
Activity类只是一个包含一些基本窗口功能的类,启动后实际是一个空白框,
需要在其中加入自己的设计,下面是一个空项目的activity的声明
protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); }
Bundle savedInstanceState,这个是为了在activity中止时保存其状态,具体保存内容待查代码如下public void onSaveInsanceState(Bundle saveInsanceState){ super.onSaveInsanceState(saveInsanceState); }在实际应用中,当一个Activity结束前,如果需要保存状态,就在onsaveInsanceState中,将状态数据以key-value的形式放入到saveInsanceState中。这样,当一个Activity被创建时,就能从onCreate的参数saveInsanceState中获得状态数据。
setContentView(R.layout.activity_main);
activity_main是个布局文件即控件都是如何摆放如何显示的,setContentView就是设置一个Activity的显示界面,这句话就是设置这个这句话所再的Activity采用R.layout下的
activity_main布局文件进行布局
使用setContentView可以在Activity中动态切换显示的View,这样,不需要多个Activity就可以显示不同的界面,因此不再需要在Activity间传送数据,变量可以直接引用。但是,在android SDK给我们建的默认的Hello World程序中,调用的是setContentView(int layoutResID)方法,如果使用该方法切换view,在切换后再切换回,无法显示切换前修改后的样子,也就是说,相当于重新显示一个view,并非是把原来的view隐藏后再显示。其实setContentView是个多态方法,我们可以先用LayoutInflater把布局xml文件引入成View对象,再通过setContentView(View view)方法来切换视图。因为所有对View的修改都保存在View对象里,所以,当切换回原来的view时,就可以直接显示原来修改后的样子
setContentView相关用法如下:
http://www.360doc.com/content/12/1106/15/8189294_246188695.shtml然后是下面这一段
public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.main, menu); return true; }
onCreateOptionsMenu具体用法见链接http://www.linuxidc.com/Linux/2012-02/55500.htm
getMenuInflater().inflate(R.menu.options_menu,menu):
a.inflate的作用是将xml定义的而一个布局找出来,但仅仅是找出来。
b.第一个参数是布局,第二个参数是菜单。
添加一个 TextView:
1,添加相应的包
2,在mainactivity.java中声明一个textview
3,在main.xml中描述text,内容为
<TextView android:text ="TextView01" android:id="@+id/TextView01" R.java可查到 android:layout_width ="wrap_content" android:layout_height ="wrap_content" android:layout_x ="61px" android:layout_y ="69px"> 注意:android:layout_x 和 android:layout_y 只有在 AbsoluteLayout 布局中才会出效的。而一般的默认布局是 LinearLayout 布局。 </TextView>
1)fill_parent
设置一个构件的布局为fill_parent将强制性地使构件扩展,以填充布局单元内尽可能多的空间。这跟Windows控件的dockstyle属性大体一致。设置一个顶部布局或控件为fill_parent将强制性让它布满整个屏幕。
2) wrap_content
设置一个视图的尺寸为wrap_content将强制性地使视图扩展以显示全部内容。以TextView和ImageView控件为例,设置为wrap_content将完整显示其内部的文本和图像。布局元素将根据内容更改大小。设置一个视图的尺寸为wrap_content大体等同于设置Windows控件的Autosize属性为True。
3)match_parent
Android2.2中match_parent和fill_parent是一个意思 .两个参数意思一样,match_parent更贴切,于是从2.2开始两个词都可以用。那么如果考虑低版本的使用情况你就需要用fill_parent了
利用 findViewById()方法获取 main.xml 中的 TextView: mTextView01 = (TextView) findViewById(R.id. TextView01);
我们调用的findViewById()函数其实有两种(目前我只看到两种,不确定还有没有其他的),一种是Activity类中findViewById()函数
另外一种是View类中定义的findViewById()函数
一般我们在oncreate()方法中使用的(**view)findViewById(R.id.**)既是调用的Activity中的findViewById()函数
而在其他情况写出的***view.findViewById()中调用的是view类中的findViewById(
⑤ 设置 TextView 标签内容
⑥ 设置文本超级链接
import android.widget.TextView;
private TextView mTextView01 ;
mTextView01 = (TextView) findViewById(R.id. TextView01);
String str_2 = "欢迎来到Android 的TextView 世界...";
mTextView01 .setText(str_2)
添加超链接
<TextView
android:id="@+id/TextView02"
android:layout_width ="wrap_content"
android:layout_height ="wrap_content"
android:autoLink ="all"
android:text ="请访问Android 开发者:
http://developer.android.com/index.html" >
</TextView>
textview_xml 参数:http://blog.csdn.net/wazhl/article/details/7665379
可以再mainactivity.xml中自己看
添加view这个部分不需要在AndroidManifest.xml添加>?
反正我不加是成功了
在AndroidManifest.xml里面有着一段
<View
android:layout_width="match_parent"
android:layout_height="1dip"
android:background="#696969" />
这个大概是主界面,不过删除之后,包括main.xml中的相关代码,运行起来没啥变换。。。。。。。晕
安卓app开发日记