两个页面的Android入门代码


// MainActivite.java
/**
 * The first Android 4.4.2 APP
 * Author: fengdos
 * Date  : 2014-06-06
 * Android app中的一个页面就对应一个 Activity.java文件及相应的XML配置布局文件.
 * Android开发过程:
 * 1. 用eclipse建立项目,自动生成Activity框架
 * 2. 添加控件
 * 3. 进行界面布局,并设置 相应 控件 的属性
 * 4. 对 控件 进行 事件 绑定
 * 5. 生成APK安装包
 * 建立本项目过程: 进入Eclipse Luna
 * File/ new / Project... / Android / Android Application Project/ 
 * 输入下列:
 * Application Name: First
 *     Project Name: First
 *     Package Name: com.dlf.First
 * 选择下列:
 * Minimum Required SDK: API 19: Android 4.4(KitKet)
 *           Target SDK: API 19: Android 4.4(KitKet)
 *         Compile With: API 19: ANdroid 4.4(KitKat)
 *                Theme: Holo Light with Dark Action Bar
 * 然后一路 ‘下一步’,完成,就创建了本项目。
 * 
 * 项目自动生成的文件清单及说明:
 * MainActivity.java 为主项目源文件(负责业务逻辑),位于First/src/com.dlf.first/
 * activity_main.xml 为主项目配置文件(负责界面及布局),位于First/res/layout
 * First/gen/com.dlf.first/BuildConfig.java  //请勿手动修改,属自动更新源代码
 * First/gen/com.dlf.first/R.java //请勿手动修改,属自动更新源代码
 * First/Android 4.4.2/android.jar APP开发工具包,里面有开发APP的很多类库
 * First/bin/AndroidMainifest.xml  配置文件
 * First/bin/classes.dex  Android字节码文件,相当于java中的.class文件
 * First/bin/First.apk    编译生成Android安装文件apk,将此文件复制到Android手机中就可以进行安装及使用了
 * First/bin/res   用于APP中的图标资源,用于显示APP的图标(各种大小,如:32*32,48*48,128*128等)
 * First/drawable/button_font_style.xml  按钮风格配置
 *  
 * 有时候在Eclipse中关闭了你所使用的项目,则可以用以下方法打开你要的项目:
 * File / Import.. /Android/Existing Android Code Into Workspace
 * 点击'Browse...'按钮,选择你的Android项目位置,
 * 本人Android项目位置D:\Users\Administrator\workspace,
 * 最后勾选你所要打开的项目,如: First
 * 
 * 注意: 项目名就是以后的APP名,建立后就不能更改了.
 */

package com.dlf.first;

import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.content.Intent;
import android.graphics.Color;
import android.net.Uri;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;                  // 所有控件的父类View类
import android.view.View.OnClickListener;  // 点击事件
import android.widget.Button;              // 按钮
import android.widget.CheckBox;
import android.widget.CompoundButton;
import android.widget.CompoundButton.OnCheckedChangeListener;
import android.widget.SeekBar;
import android.widget.SeekBar.OnSeekBarChangeListener;
import android.widget.EditText;			   // 编辑框
import android.widget.Switch;
import android.widget.TextView;            // 文本框
import android.widget.Toast;

/*为什么我一创建android项目就有helloworld了,怎么取消呀,怎么创建一个空项目呀,用的是eclipse
//把布局文件里面的textview控件删掉,就是空项目
//每次都要删吗?就不能创建的时候就弄好
//可以,创建的时候我记得可以选择类型………有null,还有tab,还有登入界面
 * 在一个项目中建立另一个 Activity 过程: 如项目名为: First,则在项目First上右击鼠标右键,选择 New/Other../Android/Android Activity..
 * 然后根据提示操作,下一步,完成.
*/

/* 如运行时出现以下错误:
 * Android Launch!
 * The connection to adb is down, and a severe error has occured.
 * You must restart adb and Eclipse.
 * Please ensure that adb is correctly located at 'D:\Android\android-sdk\platform-tools\adb.exe' and can be executed.
 * 解决办法如下:
 * D:\Android\android-sdk\platform-tools\ado.exe
 * cmd:> adb kill-server      // 杀死adb服务进程
 * cmd:> adb start-server     // 重启adb服务进程
 * 如上述办法不行,可以是运行时候连接了手机,并且360手机助手等软件打开了,关闭了ADB进程,此关闭这些软件,还不行就弹出手机,再运行就OK了;
 * 其实adb.exe进程是Eclipse运行Android项目时自动运行开启的,根本不用手动开启;
 * 
 * 当正确连接了手机后,在Eclipse中运行Android项目时,弹出一个对话框要求你选择是在 手机或仿真器中运行,选择 手机 时,就直接在手机中打开相应APP,
 * 如果手机中没有本APP,则进行时会自动安装到手机中,然后再打开运行.
 * 
 * 在Android开发中时常会遇到需要多行输入的情况,今天为大家带来如何解决
 * android里面EditTex多行输入的情况。
 * 添加关键代码:
 * android:minLines="8"
 * android:maxLines="10"
 * android:inputType="textMultiLine"
 * 其中最为关键的是  android:inputType="textMultiLine"
 * android里面EditTex多行输入.
 * 若要显示滚动条,添加如下代码:
 * android:scrollbars="vertical"
 * android里面EditTex多行输入.
 * minLines和maxLines的区别:
 * android:minLines="3"
 * android:maxLines="3"
 * 使用maxLines的EditText最大行数为3行,当输入的内容超过3行后,它形状的大小不会根据输入内容的多少而改变,反正它显示的内容就是3行
 * 而使用minLines的EditText是至它至少显示3行内容,当输入的内容超过3行后,它形状的大小根据输入内容的多少而改变。
 */

public class MainActivity extends Activity {
	
	/** Called when the activity is first created. */
    private static final String TAG="MainActivity";
	boolean isOn = false;

	@Override
	protected void onCreate(Bundle savedInstanceState) { // 建立时就执行,初始化一般在这事件中
		super.onCreate(savedInstanceState);
		
		setContentView(R.layout.activity_main); // 设置界面使用的视图绑定为activity_main.xml文件,必须有这语句
		//自动显示 Hello World,不让显示就把布局文件里面的textview控件删掉,就是空项目
		
		// 手动增加代码开始
		Button saveM = (Button) findViewById(R.id.saveMsg);
		saveM.setOnClickListener(saveMsg_OnClickListener);
		
		Button m = (Button) findViewById(R.id.man);
		Button w = (Button) findViewById(R.id.women);
		m.setOnClickListener(man_OnClickListener);
		w.setOnClickListener(women_OnClickListener);
		
		/*EditText et = (EditText) findViewById(R.id.userName);
		et.setBackgroundColor(Color.YELLOW);*/

		SeekBar sek = (SeekBar) findViewById(R.id.seek);
		sek.setOnSeekBarChangeListener(seek_OnSeekBarChangeListener);
		sek.setProgress(50);
		
		Button login= (Button) findViewById(R.id.login); //绑定login为R.id.login所指定的按钮
		login.setBackgroundColor(Color.argb(70, 109, 183, 221)); // 透明度,R,G,B
		login.setTextColor(Color.RED);
		login.setOnClickListener(login_OnClickListener); // 绑定事件
		
		Switch sw = (Switch) findViewById(R.id.switch1);
		sw.setOnCheckedChangeListener(sw1_OnClickListener);
		
		Button button = (Button) findViewById(R.id.button1);
		button.setOnClickListener(button1_OnClickListener);  // 为拨打按钮注册监听器

		Button button2 = (Button) findViewById(R.id.button2);
		button2.setOnClickListener(button2_OnClickListener); // 绑定button1的点击事件与Button2OnClickListener关联
		
		Button statueButton = (Button) findViewById(R.id.toggleButton1);
		statueButton.setOnClickListener(toggleButton1_OnClickListener); // 绑定button1的点击事件与myOnClickListener关联

		// 手动增加代码结束
	}
	
	private OnClickListener saveMsg_OnClickListener = new OnClickListener() {
		public void onClick(View v) {
			// 增加自己的代码......
			// button1.setBackgroundColor(getResources().getColor(R.color.blue));

			final TextView text = (TextView) findViewById(R.id.textView1); // 绑定 标签 对象
			final CheckBox chk = (CheckBox) findViewById(R.id.saveMsg); // 绑定 复选框 对象
			
			text.setBackgroundColor(Color.GREEN); 
			text.setTextColor(Color.BLUE);
			
			if(chk.isChecked()==true) {
				text.setText("\t信息保存\r成功!\n         ");
			}
			else if(chk.isChecked()==false) {
				text.setText("已取消保存信息.");
			}				
		}
	};
	
	private OnClickListener man_OnClickListener = new OnClickListener() {
		public void onClick(View v) {
			// 增加自己的代码......
			final TextView text = (TextView) findViewById(R.id.textView1); // 绑定 标签 对象
			text.setBackgroundColor(Color.BLUE); 
			text.setTextColor(Color.LTGRAY);
			text.setText("你是是个男的.");						
		}
	};
	
	private OnClickListener women_OnClickListener = new OnClickListener() {
		public void onClick(View v) {
			final TextView text = (TextView) findViewById(R.id.textView1); // 绑定 标签 对象
			text.setBackgroundColor(Color.YELLOW); 
			text.setTextColor(Color.BLUE);
			text.setText("你是个美女!");
		}
	};
	
	private OnSeekBarChangeListener seek_OnSeekBarChangeListener = new OnSeekBarChangeListener() {
		public void onProgressChanged(SeekBar seek, int progress,
				boolean fromUser) {
			final TextView text = (TextView) findViewById(R.id.textView1); // 绑定标签 对象

			text.setBackgroundColor(Color.YELLOW);
			text.setTextColor(Color.BLUE);
			/*
			 * final SeekBar val = (SeekBar) findViewById(R.id.seek);
			 * text.setText("当前值为: " + val.getProgress()); // 这个可以获取到
			 */
			text.setText("当前值为: " + progress); // 这个也能用
		}

		public void onStartTrackingTouch(SeekBar seekBar) {
			final TextView text = (TextView) findViewById(R.id.outMessage); // 绑定标签对象
			text.setText("开始拖动..");
		}

		public void onStopTrackingTouch(SeekBar seekBar) {
			final TextView text = (TextView) findViewById(R.id.outMessage); // 绑定标签对象
			text.setText("拖动停止!!");
		}
	};
	
	private OnClickListener login_OnClickListener = new OnClickListener() {
		public void onClick(View v) {
			
			final TextView text = (TextView) findViewById(R.id.textView1);
			text.setText("\t用户登录\n验证成功!");	
			
			Intent intent=new Intent();		// 实例化一个意图
            intent.setClass(MainActivity.this, ActivityOne.class);  
            startActivity(intent);  // 启动一个意图,通过第一个页面上按"登录"按钮调用第二个页面.
            
            int version = Integer.valueOf(android.os.Build.VERSION.SDK);
            if(version  >= 5) {     
               overridePendingTransition(R.anim.zoom_in, R.anim.zoom_out); 
              //overridePendingTransition(android.R.anim.decelerate_interpolator,android.R.anim.decelerate_interpolator);    
                 //overridePendingTransition(android.R.anim.overshoot_interpolator,android.R.anim.linear_interpolator);  
            }    
            MainActivity.this.finish();		
		}
	};
	
	private OnCheckedChangeListener sw1_OnClickListener = new OnCheckedChangeListener() {
		// public void onClick(View v) {
		public void onCheckedChanged(CompoundButton buttonView,
				boolean isChecked) {
			final TextView text = (TextView) findViewById(R.id.outMessage); // 绑定标签对象
			text.setBackgroundColor(Color.YELLOW);
			text.setTextColor(Color.BLUE);
			if (isChecked) {
				// mBluetoothAdapter.enable(); //打开蓝牙
				text.setText("蓝牙功能已打开.");
			} else {
				// mBluetootAdapter.disable(); //关闭蓝牙
				text.setText("蓝牙功能关闭了!");
			}
		}
	};

	// 手动增加代码开始 ,为按钮添加侦听器
	private OnClickListener toggleButton1_OnClickListener = new OnClickListener() {
		public void onClick(View v) {
			// 增加自己的代码......
			// button1.setBackgroundColor(getResources().getColor(R.color.blue));
			final TextView text = (TextView) findViewById(R.id.textView1);
			if(isOn == false) {
				isOn=true;
				text.setText("OnClick. " + "WiFi已打开.");
			}
			else if(true == isOn) {
				isOn=false;
				text.setText("OnClick. " + " WiFi已关闭!!");
			}
		}
	};
	
	private OnClickListener button1_OnClickListener = new OnClickListener() {
		public void onClick(View v) {
			// 增加自己的代码......
			// button1.setBackgroundColor(getResources().getColor(R.color.blue));

			final TextView text = (TextView) findViewById(R.id.textView1);
			text.setText("OnClick. " + " 正在拨号中...");
			System.out.println("You Click!"); // 没有输出到Console而是输出到LogCat中的Text字段中

			/*//实例化一个意图,当按钮被单击时被执行
			Intent intent = new Intent();
			//这个意图就是调用系统的拨打活动
			intent.setAction(Intent.ACTION_CALL);
			//设置要拨打的电话号号码
			intent.setData(Uri.parse("tel:18974731396"));  //uriString的格式为“tel:电话号码”
			//开始调整到打电话的活动
			startActivity(intent);*/
		}
	};

	// 手动增加代码开始 ,为按钮添加侦听器
	private OnClickListener button2_OnClickListener = new OnClickListener() {
		public void onClick(View v) {
			// 增加自己的代码......
			// 弹出一个对话框,有'取消'及'确认'两个按钮
			AlertDialog.Builder alterDialog = new AlertDialog.Builder(
					MainActivity.this);
			alterDialog.setTitle("  选择操作");
			alterDialog.setMessage(" 提示内容: 确认要退出应用吗? ");
			alterDialog.setCancelable(false);
			alterDialog.setPositiveButton("确认",
					new DialogInterface.OnClickListener() {
						@Override
						public void onClick(DialogInterface dialog, int which) {
							Toast.makeText(MainActivity.this, "确认操作",
									Toast.LENGTH_SHORT).show();
							//MainActivity.finish();
							MainActivity.this.finish(); //退出当前APP,返回到Android桌面
							//System.exit(0);  // 由于是调试,所以用这个方便些,开发成功后改为上一条语句
						}
					});
			alterDialog.setNegativeButton("取消",
					new DialogInterface.OnClickListener() {
						@Override
						public void onClick(DialogInterface dialog, int which) {
							Toast.makeText(MainActivity.this, "取消操作",
									Toast.LENGTH_SHORT).show();
							//alterDialog.show(); // 不能在这里调用													
						}
					});
			alterDialog.show();  // 只能放在这个位置
		}
	};

	// 手动增加代码结束

	@Override
	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;
	}

	@Override
	public boolean onOptionsItemSelected(MenuItem item) {
		// Handle action bar item clicks here. The action bar will
		// automatically handle clicks on the Home/Up button, so long
		// as you specify a parent activity in AndroidManifest.xml.
		// APP中的菜单执行相应操作
		int id = item.getItemId(); // 获取选择的菜单项
		if (id == R.id.action_settings) { // APP必须带有一个Settings菜单项,此为不进行任何操作,直接返回
			System.out.println("Choice is: " + id); // 没有输出到Console而是输出到LogCat中的Text字段中
			// Settings菜单项的 id值为 2131296258
			// System.exit(0); // 按下Settings菜单时执行退出APP操作
			return true;
		} else if (id == R.id.item1) {
			// item1命名来自res/menu/main.xml文件中的定义,R.id.item1与2131296259相同
			final TextView text = (TextView) findViewById(R.id.outMessage);
			text.setText("版权所有: Fengdos, 欢迎使用!!");
			System.out.println("关于本APP..");
		} else if (id == R.id.item2) { // 应用的菜单中的第一个选项值为2131296259,第二个为2131296260,依次类推
			// 此例中 item2等同2131296260,这些数字也是不固定的,有时为2131296270,所以最好不要用,而直接用R.id.item**
			System.exit(0); // 退出应用
		}
		System.out.println("Select is: " + id); // 没有输出到Console而是输出到LogCat中的Text字段中
		final TextView text = (TextView) findViewById(R.id.textView1);
		text.setText("Select is " + id);
		return super.onOptionsItemSelected(item);
	}
}

 

// ActivtyOne.java

 

package com.dlf.first;

import android.app.Activity;
import android.content.Intent;
import android.graphics.Color;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;

public class ActivityOne extends Activity {

	/** Called when the activity is first created. */
    private static final String TAG="ActivityOne";
	
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_activity_one);	
		
		Button sum= (Button) findViewById(R.id.addNum);
		sum.setOnClickListener(addNum_OnClickListener); // 绑定事件
		
		Button ret= (Button) findViewById(R.id.returnMain);
		ret.setBackgroundColor(Color.argb(39, 109, 183, 221)); // 透明度,R,G,B
		ret.setTextColor(Color.BLUE);
		ret.setOnClickListener(returnMain_OnClickListener); // 绑定事件
	}
	
	private OnClickListener addNum_OnClickListener = new OnClickListener() {
		public void onClick(View v) {
			
			final TextView text = (TextView) findViewById(R.id.viewMessage);
			EditText A = (EditText) findViewById(R.id.numOne);
			EditText B = (EditText) findViewById(R.id.numTwo);
			Integer a,b,c;
			a=b=c=0;

			//text.setText("A,B = " + A + " , " + B);  //不输入时,就是一串乱字符
			
			/*A.setText("0");
			B.setText("0");*/
			
			if(A.getText().equals("0") || B.getText().equals("0")) {
				text.setText("你还没有输入数字!!");  // 没有实现判断未输入时的处理,些语句块无效,等实现??
			}
			else {
				a = Integer.parseInt(A.getText().toString());
				b = Integer.parseInt(B.getText().toString());	
				c = a + b;
				text.setText(a + " + " + b + " = " + c );
			}					
		}
	};
	
	private OnClickListener returnMain_OnClickListener = new OnClickListener() {
		public void onClick(View v) {
			
			final TextView text = (TextView) findViewById(R.id.viewMessage);
			text.setText("返回主界面成功!");	
			
			Intent intent=new Intent();
            intent.setClass(ActivityOne.this, MainActivity.class);  
         
            startActivity(intent);  // 通过第一个页面上按"登录"按钮调用第二个页面.
            int version = Integer.valueOf(android.os.Build.VERSION.SDK);
            if(version  >= 5) {     
               overridePendingTransition(R.anim.zoom_in, R.anim.zoom_out); 
              //overridePendingTransition(android.R.anim.decelerate_interpolator,android.R.anim.decelerate_interpolator);    
                 //overridePendingTransition(android.R.anim.overshoot_interpolator,android.R.anim.linear_interpolator);  
            }    
            ActivityOne.this.finish();		
		}
	};

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

	@Override
	public boolean onOptionsItemSelected(MenuItem item) {
		// Handle action bar item clicks here. The action bar will
		// automatically handle clicks on the Home/Up button, so long
		// as you specify a parent activity in AndroidManifest.xml.
		int id = item.getItemId();
		if (id == R.id.action_settings) {
			return true;
		}
		return super.onOptionsItemSelected(item);
	}
}


 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值