Android开发中插入新的Activity

一个Activity就相当于程序的一页,如果想要跳转到新的一页,就必须插入新的Activity。 插入新的Activity有三步骤: 1、建立新的Activity程序代码,这里以”new.class”为例 2、在AndroidManifest.xml中添加新Activity的描述 3、在原有Activity中调用启动新的Activity 下面一步一步来,首先建立新的Activity程序代码: 在Eclipse左侧的Package Explorer中的src下的package上点右键,New一个Class。有一点要注意,在弹出的对话框中,Superclass要选择Activity,Name必须大写(这是JAVA的规定,必须这样,否则无法建立) ,在新建的Name.class里插入代码:

public class Name extends Activity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        setContentView(R.layout.new);
    }
}

然后建立相应的描述UI的xml文件,格式复制原有main.xml的格式即可,根据上面的代码(R.layout.new),这个xml文件名应该为new.xml。 接下来第二步,在AndroidManifest.xml中添加新Activity的描述 打开AndroidManifest.xml,切换到Application页面,在Application Nodes里,列出了这个程序目前所有的Activity(当然不包括我们现在要添加的),点右边的Add,如图: 点击OK,打开AndroidManifest.xml,加入

<activity android:name="Name"></activity> 

然后是在原有Activity中调用启动新的Activity

Intent intent=new Intent();
intent.setClass(Test.this,Name.class);//当前的Activity为Test,目标Activity为Name
//从下面这行开始是将数据传给新的Activity,如果不传数据,只是简单的跳转,这几行代码请注释掉
Bundle bundle=new Bundle();
bundle.putString("key1","value1");//key1为名,value1为值
bundle.putString("key2","value2");
intent.putExtras(bundle);
//传数据结束
startActivity(intent);

到这里,新的Activity就被制调用了,如果刚才在原Activity中传送了数据,用下面的代码可以在新的Activity中获取到。

Bundle bundle=this.getIntent().getExtras();
String s1=bundle.getString("key1");
String s2=bundle.getString("key2");

Android UI设计 按钮Button控件用法

Android UI设计 按钮Button控件用法 main.xml中:

<Button android:id="@+id/calc"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:text="@string/calc"
/>

string.xml中:

<string name="calc">计算BMI</string>

程序中调用:

Button button=(Button)findViewById(R.id.calc);
button.setOnClickListener(jump);//点击后运行jump
private OnClickListener jump=new OnClickListener(){//定义jump
        @Override
        public void onClick(View v) {
                        //这里插入点击后运行的程序代码
        }

Android UI设计 文本输入框EditText用法(输入密码 隐藏显示输入的字符串)

这里介绍EditText的简单使用方法,EditText是一个文本输入框,我们在与用户交互的时候常常会用到,比如登录、注册等需要用户输入信息的地方。 先看看例子的效果图: 从上到下依次是一个TextView,用于显示输入的字符串;一个EditText,用于输入字符串;一个CheckBox,用于控制隐藏显示输入字符;最后是一个Button,用于控制TextView显示输入的字符串。下面是布局XML代码:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >
 <TextView android:id="@+id/tv"
     android:layout_width="fill_parent"
    android:layout_height="wrap_content"
 />
<EditText android:id="@+id/et"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"    
/>

<CheckBox android:id="@+id/cb"    
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:text="显示或隐藏密码"
/>
<Button android:id="@+id/bt"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:text="显示输入的字符串"
/>
</LinearLayout>

程序代码:

package com.pocketdigi.edit;

import android.app.Activity;
import android.os.Bundle;
import android.text.method.HideReturnsTransformationMethod;
import android.text.method.PasswordTransformationMethod;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.CompoundButton;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.CompoundButton.OnCheckedChangeListener;

public class main extends Activity {
    /** Called when the activity is first created. */
    EditText et;
    CheckBox cb;
    TextView tv;
    Button bt;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        et=(EditText)findViewById(R.id.et);
        et.setTransformationMethod(PasswordTransformationMethod.getInstance());
        //默认隐藏状态,不显示输入的字符,如果默认不隐藏则删除上面这行
        cb=(CheckBox)findViewById(R.id.cb);
        tv=(TextView)findViewById(R.id.tv);
        bt=(Button)findViewById(R.id.bt);
        bt.setOnClickListener(show);
        cb.setOnCheckedChangeListener(listener);
    }
    OnCheckedChangeListener listener=new OnCheckedChangeListener(){

        @Override
        public void onCheckedChanged(CompoundButton buttonView,
                boolean isChecked) {
            // TODO Auto-generated method stub
            if(isChecked){
                et.setTransformationMethod(HideReturnsTransformationMethod.getInstance());
                //如果选中,显示密码
            }else{
                 et.setTransformationMethod(PasswordTransformationMethod.getInstance());
                 //否则隐藏密码
            }

        }

    };
    OnClickListener show=new OnClickListener(){

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            tv.setText(et.getText());
            //点Button后,TextView显示输入的字符串
        }

    };
}

Android UI设计 文本控件TextView用法

文本控件TextView用法: main.xml中:

<TextView android:id="@+id/result"
    <!--设定ID为result,此项可选-->
    android:layout_width="fill_parent" 
    <!--宽度为填满父容器-->
    android:layout_height="wrap_content"
    <!--高度为自动根据内容调整-->
    android:text="@string/height"
    <!--文本控件内容为string.xml中的height-->
    />

string.xml中的height:

<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="height">身高</string>
</resources>

在程序中修改显示的文本:

private TextView result;
result=(TextView)findViewById(R.id.report_result);
result.setText(CharSequence text);

另外,一直没搞懂CharSequence和String的区别,JAVA手册上定义CharSequence 是 char 值的一个可读序列,此接口对许多不同种类的 char 序列提供统一的只读访问。但在用法上跟String貌似差不多,有了解的兄弟希望能指教下。 setText方法还支持Resources ID,即可以在xml文件中定义字符串,然后在setText(int resid)引用。TextView不支持HTML标签,但如果需要显示链接,可以在布局xml中加入android:autoLink属性,详见在TextView中显示链接 定义颜色