一:Android应用工程文件组成:
【1】src文件:存放源文件
【2】R.java文件:自动生成,可以通过R.id.X寻找指定的组件,例如:
在activity_main.xml文件中指定文本输入框的id为editUserName(不可以用数字)
<EditText android:id="@+id/editUserName" android:layout_width="match_parent" android:layout_height="wrap_content" android:inputType="text"/>
在R.java中自动生成唯一的id
public static final int editUserName=0x7f080001;
在MainActivity.java中想要找到这个组件,只需通过id即可
EditText editUserName = (EditText)MainActivity.this.findViewById(R.id.editUserName);
【3】assets目录:存放多媒体文件
【4】res目录:存放应用的资源文件,包括values目录,放置字符串(String.xml),数组(arrays.xml)等, 还包括layout目录,放置各种布局文件-----FrameLayout(框架布局),LinearLayout(线性布局), AbsoluteLayout(绝对布局),RelativeLayout(相对布局),TableLayout(表格布局)
【5】Androidmainfest.xml:应用的配置文件
【6】drawable目录:存放图片资源
二:界面跳转的实现:
从一个Activity跳到另一个Activity,但是在Android里面Activity的对象并不是由程序员创建的,也就说明没有办法新建一个它的对象,因此,需要通过Intent对象来让系统知道我们的意图
下面的例子可以实现从第一个界面跳到第二个界面并且在用户按下返回键后可以回到第一个界面输出“result”,第一个界面为已经写好的布局,包括用户名和密码的输入框以及按钮的添加
package com.example.TianTianKuPao; import android.os.Bundle; import android.app.Activity; import android.content.Intent; import android.view.Menu; import android.view.View; import android.widget.Button; import android.widget.EditText; import android.widget.TextView; import android.widget.Toast; //手机屏幕 public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); //关联布局文件(只能关联一个) setContentView(R.layout.activity_main); //下面这两句以及创建监听器对象均是因为加了android:onClick那句不再需要加按钮监听器 //无需创建,通过ID找到按钮对象(button是 View的子类,这里强制转换) //Button btnLogin =(Button)findViewById(R.id.btnLogin); //给按钮添加监听器 //btnLogin.setOnClickListener(l); } private void showNextActivity(String userName){ //通过Intent对象让系统知道我们的意图 Intent intent = new Intent(MainActivity.this,ShowUIActivity.class); intent.putExtra("username", userName); int requestCode = 11; this.startActivityForResult(intent, requestCode); //this.startActivity(intent); } public void onActivityResult(int requestCode,int resultCode,Intent data ){ if( resultCode == Activity.RESULT_OK){ //找到用户名组件,设置为不可见 TextView textUserName = (TextView)MainActivity.this.findViewById(R.id.textUserName); textUserName.setVisibility(View.INVISIBLE); //找到密码组件,设置为不可见 TextView textPassword = (TextView)MainActivity.this.findViewById(R.id.textPassword); textPassword.setVisibility(View.INVISIBLE); //找到用户名输入框控件对象,设置为不可见 EditText editUserName = (EditText)MainActivity.this.findViewById(R.id.editUserName); editUserName.setVisibility(View.INVISIBLE); //找到密码输入框控件对象,设置为不可见 EditText editPassword = (EditText)MainActivity.this.findViewById(R.id.editPassword); editPassword.setVisibility(View.INVISIBLE); //找到按钮组件,设置为不可见 Button btnlogin = (Button)MainActivity.this.findViewById(R.id.btnLogin); btnlogin.setVisibility(View.INVISIBLE); TextView tv = (TextView)this.findViewById(R.id.textView2); tv.setText("result"); } } //采取匿名内部类 创建按钮监听器对象 //OnClickListener l = new OnClickListener(){ public void onClick(View v) { //找到用户名输入框控件对象 EditText editUserName = (EditText)MainActivity.this.findViewById(R.id.editUserName); //找到密码输入框控件对象 EditText editPassword = (EditText)MainActivity.this.findViewById(R.id.editPassword); //获取用户输入的用户名 String username = editUserName.getText().toString(); //获取用户输入的密码 String password = editPassword.getText().toString(); //判断用户输入是否为空 if("".equals(username)){ Toast.makeText(MainActivity.this,"请输入用户名",Toast.LENGTH_SHORT).show(); return; } if("".equals(password)){ Toast.makeText(MainActivity.this,"请输入密码",Toast.LENGTH_SHORT).show(); return; } if("zuo".equals(username) && "1".equals(password)){ Toast.makeText(MainActivity.this,"登录成功",Toast.LENGTH_LONG).show(); //跳到下一个页面(采取提供的构造方法) showNextActivity(username); }else { Toast.makeText(MainActivity.this,"登录失败",Toast.LENGTH_LONG).show(); } } //private void startAvtivity(Intent intent) { //} //}; }
package com.example.TianTianKuPao; import android.os.Bundle; import android.app.Activity; import android.content.Intent; import android.widget.TextView; public class ShowUIActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_show_ui); //接收前面传过来的参数 String username = getIntent().getStringExtra("username"); //将关联的xml文件中的TextView加一个id找到他 TextView user =(TextView) findViewById(R.id.user); //将他的文本设置为传过来的参数 user.setText(username); }