Android学习中用到基础知识

持续更新中。。。。。

src :  放置编写的源文件

gen: eclipse插件帮助生成的文件 R.java 千万不要修改它!!
res:放置的所有的资源都会在R.java中生成相应的ID,layout:布局文件xml,控制这个activity的位置、大小、宽窄,values:值。strings.xml:
assets: 放置任何文件
AndroidManifest.xml:   整个应用程序的配置文件

Intern的四个属性:
Component name 制定启动那个Activity
Action:执行那些操作
DATA:传送哪些数据
Extra:键值对,通过Intern传递到另外一个Activity


生命周期:

onCreate:      当第一次调用的时候onCreate

onStart  :     当activity处于可见的时候就会调用onStart
onRetart:   当被遮挡住的时候,并没有被销毁,所以在此调用的时候会调用onRestart
onPause:   应用程序启动另外一个程序的时候(例如:来电话时候,生成一个新的activity,把当前的操作保存起来)
onResume:   获得焦点的时候调用!

onStop:     当activity处于不可见的时候就会调用onStop,第二个遮挡住第一个的时候会调用,如果只是一个对话框弹出来就不会调用
onDestory:   

task的基本概念: a task is a stack id activities(一个栈)





Toast:是一个类,主要管理消息的提示。
makeText(),是Toast的一个方法,用来显示信息,分别有三个参数。
第一个参数:this,是上下文参数,指当前页面显示
第二个参数:“string string string ”是你想要显示的内容,也可以是“你好!”。这个是随便定义的,显示你想要显示的内容。
第三个参数:Toast.LENGTH_LONG,是你指你提示消息,显示的时间,这个是稍微长点儿,对应的另一个是ToastLENGTH_SHORT,这个时间短点儿,大概2秒钟。
show(),表示显示这个Toast消息提醒,当程序运行到这里的时候,就会显示出来,如果不调用show()方法,这个Toast对象存在,但是并不会显示,所以一定不要忘记。


简单应用:

button3.setOnClickListener(new View.OnClickListener() {
			@Override
			public void onClick(View v) {
				LayoutInflater inflater=LayoutInflater.from(AlertDialogActivity.this);
				final View textEntryView=inflater.inflate(R.layout.alert_dialog_text_entry, null);
				
				final EditText usernameET=(EditText)textEntryView.findViewById(R.id.username_value);
				final EditText passwordET=(EditText)textEntryView.findViewById(R.id.password_value);
				//final String username=usernameET.getText().toString();
				
				new AlertDialog.Builder(AlertDialogActivity.this)
				.setIcon(R.drawable.alert_dialog_icon)
				.setTitle("温馨提醒")
				.setView(textEntryView)
				.setPositiveButton("确定", new DialogInterface.OnClickListener() {
					@Override
					public void onClick(DialogInterface dialog, int which) {
						Toast.makeText(AlertDialogActivity.this, "用户名="+usernameET.getText().toString()+"\n密码="+passwordET.getText().toString(), Toast.LENGTH_LONG).show();
					}
				})
				.setNegativeButton("取消", new DialogInterface.OnClickListener() {
					@Override
					public void onClick(DialogInterface dialog, int which) {
						Toast.makeText(AlertDialogActivity.this, "你选择了取消按钮!", Toast.LENGTH_SHORT).show();
					}
				})
				.show();
			}
		});

在一个主界面(主Activity)上能连接往许多不同子功能模块(子Activity上去),当子模块的事情做完之后就回到主界面,或许还同时返回一些子模块完成的数据交给主Activity处理。
目的: A.java 是主界面,B.java 是子功能模块,要从A启动B,B干完活之后把结果汇报给A

startActivityForResult与startActivity的不同之处在于:
1、startActivity( ) 
仅仅是跳转到目标页面,若是想跳回当前页面,则必须再使用一次startActivity( )。
2、startActivityForResult( ) 
可以一次性完成这项任务,当程序执行到这段代码的时候,假若从T1Activity跳转到下一个Text2Activity,而当这个Text2Activity调用了finish()方法以后,程序会自动跳转回T1Activity,并调用前一个T1Activity中的onActivityResult( )方法。

关键代码如下:

Bundle1.java
 
package com.cellcom;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.RadioButton;

/**
 * @author nwang
 * 
 * 输入身高和选择性别,计算标准体重。并把数据返回到原来Activity
 */
public class Bundle1Activity extends Activity {

	private int my_requestCode=1550;
	private RadioButton sexMan;
	private RadioButton sexWoman;
	private EditText heightEdit;
	private Button okButton;
	
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		
		super.onCreate(savedInstanceState);
		setContentView(R.layout.bundle1);
		
		sexMan=(RadioButton)findViewById(R.id.sex_man);
		sexWoman=(RadioButton)findViewById(R.id.sex_woman);
		heightEdit=(EditText)findViewById(R.id.height_edit);
		okButton=(Button)findViewById(R.id.button_ok);
		
		okButton.setOnClickListener(new View.OnClickListener() {
			@Override
			public void onClick(View v) {
				double height=Double.parseDouble(heightEdit.getText().toString());
				String sex="";
				if(sexMan.isChecked()){
					sex="M";
				}else{
					sex="F";
				}
				
				Intent intent=new Intent();
				intent.setClass(Bundle1Activity.this, Bundle2Activity.class);
				//封装数据
				Bundle bundle=new Bundle();
				bundle.putDouble("height", height);
				bundle.putString("sex", sex);
				intent.putExtras(bundle);
				startActivityForResult(intent, my_requestCode);
			}
		});
	}
	
	//回调方法
	@Override
	protected void onActivityResult(int requestCode, int resultCode, Intent data) {
		super.onActivityResult(requestCode, resultCode, data);
		
		switch (requestCode) {
		case RESULT_OK:
			//RESULT_OK表示返回成功,提取数据。
			Bundle bundle=data.getExtras();
			String sex=bundle.getString("sex");
			double height=bundle.getDouble("height");
			heightEdit.setText(String.valueOf(height));
			if(sex.equals("M")){
				sexMan.setChecked(true);
				System.out.println("sssssssssssssssssssss");
			}else{
				sexWoman.setChecked(true);
			}
			break;

		default:
			break;
		}
	}
	
	
}

Bundle2.java:
package com.cellcom;

import java.text.DecimalFormat;
import java.text.NumberFormat;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;

public class Bundle2Activity extends Activity{

	private TextView result;
	private Button backButton;
	Intent intent=null;
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		// TODO Auto-generated method stub
		super.onCreate(savedInstanceState);
		
		setContentView(R.layout.bundle2);
		result=(TextView)findViewById(R.id.result);
		backButton=(Button)findViewById(R.id.button_back);
		
		intent=this.getIntent();
		Bundle bundle=intent.getExtras();
		double height=bundle.getDouble("height");
		String sex=bundle.getString("sex");
		String sexStr="";
		if("M".equals(sex)){
			sexStr="男性";
		}else{
			sexStr="女性";
		}
		String weight=this.getWeight(sex, height);
		result.setText("你是一位:"+sexStr+"\n身高是:"+height+"厘米 \n你的标准体重:"+weight+"公斤");
		
		//返回上一页
		backButton.setOnClickListener(new View.OnClickListener() {
			@Override
			public void onClick(View v) {
				Bundle2Activity.this.setResult(RESULT_OK, intent);	
				Bundle2Activity.this.finish();
			}
		});
	}
	
	public String getWeight(String sex,double height){
		String weight="";
		if("M".endsWith(sex)){
			weight=format((height-80)*0.7);
		}else{
			weight=format((height-70)*0.6);
		}
		return weight;
	}
	
	public String format(double num){
		NumberFormat formatter=new DecimalFormat("0.00");
		String s=formatter.format(num);
		return s;
	}
}

只有Bundle2Activity.this.finish();执行完成后才会自动跳转到bundle1.java的界面



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值