Android学习中用到基础知识

来源:互联网 发布:上海二手房成交数据 编辑:程序博客网 时间:2024/04/29 23:28

持续更新中。。。。。

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() {@Overridepublic 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() {@Overridepublic 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() {@Overridepublic 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;@Overrideprotected 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() {@Overridepublic 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);}});}//回调方法@Overrideprotected 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;@Overrideprotected void onCreate(Bundle savedInstanceState) {// TODO Auto-generated method stubsuper.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() {@Overridepublic 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
原创粉丝点击