安卓app开发日记

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开发日记,布布扣,bubuko.com

安卓app开发日记

上一篇:[ Talk is Cheap Show me the CODE ] : jQuery Mobile页面布


下一篇:【php原理】大话php常量