安卓入门

最近开始安卓上手,也还没几天,没写什么大的东西,就先总结一下入门知识。

其实要上手还是不算太难,因为安卓应用的开发语言用的是Java,有点基础了好歹。

一、项目新建

    首先要把安卓的开发环境搭建好,具体内容不多说,然后就可以开始新建一个项目了。在菜单中选择【File】|【New】|【Android Application Project】,起好项目名以后点击【Next】|【Next】,可以选择改一下图标或者别的参数,接着一个项目就新建成功了。

二、模拟器

    Android的项目都是在手机上运行的,所以会需要一个Android模拟器来运行程序,当然,手机更好。鉴于模拟器的反应速度实在是不敢恭维,所以最好打开Eclipse之后的第一步就是启动模拟器。

    点击图标栏的Android Virtual Device Manager,也就是一个绿色的小手机一样的图标。在Device Definitions中选择一个device来创建,也可以New一个Device 然后自己设置参数。创建完了以后再点击Android Virtual Device Manager图标,选中刚刚创建的模拟器然后start就OK了。

三、(嗯,这个标题不知道起什么才好。。)

     跟一般的Java项目一样,src文件夹下面包含的就是项目的包和源文件,可以看到MainActivity.java文件在文件夹下的包里,暂时理解为这就是我们写代码的地方,一个activity通常就是一个屏幕。在res文件夹下的layout文件夹里面可以看到一个activity_main.xml文件,是设计和编写UI的地方。我们可以选择直接拖动组件放到界面上,也可以选择在文件中直接写代码,对代码不熟悉的话可以先选择第一种方式。

     UI界面的代码如下,这是只添加了一个TextView组件的。

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context=".MainActivity" >

    <TextView
        android:id="@+id/textId"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true"
        android:layout_marginLeft="27dp"
        android:layout_marginTop="92dp"
        android:text="账号" />

</RelativeLayout>

   

    在MainActivity中要获取到界面上的组件就要反复用到一个FindViewById的方法以及强制转换,要对组件实现监听用的是setOnClickListener或者setOnTouchListener等方法,而不是Java中的add。要实现监听效果要新定义一个内部类或者直接匿名内部类,也可以直接让activity实现监听接口,好像更简单点。

    如果仅仅在一个界面中操作那么后面的实现步骤跟以前Java区别不大,如果要实现几个界面的切换就要用到一个Intent对象了。

    Intent,简单的说就是一个意图,有点抽象...用setClass(MainActivity.this,LoginActivity.class)方法,第一个参数是当前的activity,第二个参数是要转换到的aactivity,然后调用startActivity(intent),记得传入intent参数进去。Intent对象也可以传递数据给要跳转的界面,调用putExtra("Id", Id),然后在转换到的界面里调用getStringExtra("Id")来得到该数据。

      下面是一个简单的例子。

package com.example.hello;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

public class MainActivity extends Activity {

    private static final OnClickListener MyListener = null;
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        //获取界面上的登陆按钮
        Button LoginBt = (Button)this.findViewById(R.id.LoginBt);
        
        //给按钮设置监听器
        LoginBt.setOnClickListener(new MyListener());

    }
    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;
    }
    //定义一个内部类实现监听器接口
    public class MyListener implements OnClickListener{
    	//点击按钮的方法
		public void onClick(View arg0) {
			//获取账号输入框和密码输入框
			 EditText  textId = (EditText)MainActivity.this.findViewById(R.id.editId); 
			 EditText  textPassword = (EditText)MainActivity.this.findViewById(R.id.editPassword); 
			 //获取框中的文本内容
			 String Id = textId.getText().toString();
			 String Password = textPassword.getText().toString();
			 
			 //实例化一个Intent类的对象
			 Intent intent = new Intent();
			 //把账号输入框和密码输入框中的文本存入Intent对象
			 intent.putExtra("Id", Id);
			 intent.putExtra("Password", Password);
			 
			 //如果账号密码相同的话
			 if(Id.equals(Password)){
				 //Toast对象输出提示内容
				 Toast.makeText(MainActivity.this, "right!", 5).show();
				 //跳转到第二个界面
				 intent.setClass(MainActivity.this, LoginActivity.class);
				 startActivity(intent);
				 
			 }else{
				 Toast.makeText(MainActivity.this, "error!", 5).show();
			 }
			  
		}
    	
    }
    
}

     然后是转换到的第二个界面。

package com.example.hello;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.Menu;
import android.widget.EditText;

public class LoginActivity extends Activity {

	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_login);
		//实例化一个Intent类的对象
		Intent intent= this.getIntent();
		//获取账号输入框和密码输入框
		EditText  textId = (EditText)this.findViewById(R.id.editId); 
		EditText  textPassword = (EditText)this.findViewById(R.id.editPassword); 
		//获取Intent对象中存储的内容
		String Id = intent.getStringExtra("Id");
		String Password = intent.getStringExtra("Password");
		//设置账号输入框和密码输入框中的内容
		textId.setText(Id);
		textPassword.setText(Password);
		
		
	}

	
	public boolean onCreateOptionsMenu(Menu menu) {
		// Inflate the menu; this adds items to the action bar if it is present.
		getMenuInflater().inflate(R.menu.login, menu);
		return true;
	}
	
	
}

相关推荐