장 활동
PubMed의 검토와 함께보다 많은 콘텐츠, 업데이트 속도가 느린뿐만 아니라 이해 본다.
A, 활동 작성
-
만들 수있는 한 OnCreate 방법을 @Override : (? ALT +) oncr +
习题:
Activity通过( setContentView())方法可以设置它的布局文件
Activity的布局文件放在哪个目录下(res/layout)
둘째, 활동 수명주기
메시지의 내용을 저장합니다
비디오 플레이어
게임 사용
- 전체 수명주기 :-에서 OnCreate-ONSTART-onresume onpause-중지시-ondestory
- 시각화 라이프 사이클 : ONSTART-onresume --중지시 onpause
- 리셉션 라이프 사이클 : onresume-onpause
수평 및 수직 화면 전환
习题:
Activity获取焦点时执行方法是(onresume())
Activity销毁时执行执行方法是(ondestroy())
세, 활동 생존 경우
习题:
Android使用( 任务栈 )的方式来管理Activity的实例
작업 스택 네, 안드로이드
스택 : LIFO 큐 : FIFO를
- 작업 스택은 무엇입니까
- 작업은 응용 프로그램을 완전히 종료, 비우 스택
- 메일 작업 스택 응용 프로그램을 보내기 :
- 프로세스와 스레드
- 응용 프로그램
习题:
Android采用(任务栈)的方式来管理Activity的实例
다섯, 활동 사 발기인 모드
-
시작 모드를 설정합니다 (기본값은 표준)
-
표준 시작 모드
- singleTop 시작 모드
- singleTask 시작 모드
-
singleInstance 시작 모드
(一个应用程序一般只有一个任务栈,但是当启动模式是singleInstanc时,就会有多个任务栈)
习题:
1、当Activity的启动模式指定为( singleTask ),每次启动该Activity时,系统首先会检查栈中是否存在该活动的实例,如果发现已经存在则直接使用该实例,并将当前Activity之上的所有Activity出栈,如果没有发现则创建一个新的实例
2、( singleTop )启动模式与standard类似,不同的是,当启动的Activity已经位于栈顶时,则直接使用它不创建新的实例
여섯째, 명시 적 및 암시 의도 의도
- (활성 성분의 이름을 알고) 암시 적 의도 (미아오 쑤 대응 조치) 표시하기위한 것입니다
- 사용 시나리오 의도에게 두 종류의
习题:
1、Intent intent = new Intent();
intent.setAction("cn.itscast.xxx");
startActivity(intent);
采用的是(隐式意图)启动Activity
2、没有明确指定组件名的Intent称为(隐式意图)
세븐, 카메라 케이스를 켭니다
- 노골적인 의도
- 암시 적 의도
习题:
1、下列能打开系统相机的方法是(隐式意图)
여덟, 데이터 전송 모드
习题
1、Android中Intent传递类对象时,该类对象需实现(Serializeable接口)或Parcelable接口
2、下列选项中不能通过Intent传递的是(对象obj)
9 건 등록 된 사용자
MainActivity.java의에서
import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.view.Menu;
import android.view.View;
import android.widget.EditText;
import android.widget.RadioGroup;
public class MainActivity extends Activity {
private EditText et_username;
private EditText et_pwd;
private RadioGroup rg;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//找到我们关系的控件
et_username = (EditText) findViewById(R.id.et_username);
et_pwd = (EditText) findViewById(R.id.et_pwd);
rg= (RadioGroup) findViewById(R.id.rg);
}
public void click(View View) {
// TODO Auto-generated method stub
String username=et_username.getText().toString().trim();
String pwd=et_pwd.getText().toString().trim();
int getCheckedRadioButtonId=rg.getCheckedRadioButtonId();
//定义一个变量,来判断是男是女
int sex=0;
switch (getCheckedRadioButtonId) {
case R.id.rb_male:
sex=1;
break;
case R.id.rb_female:
sex=2;
break;
}
//将数据传输到第二个页面,通过意图把数据传递过去
Intent intent=new Intent(this,second_main.class);
//携带数据
intent.putExtra("name", username);
intent.putExtra("pwd", pwd);
intent.putExtra("sex", sex);
//开启意图
startActivity(intent);
}
}
에서 second_main
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.widget.EditText;
import android.widget.RadioGroup;
import android.widget.TextView;
public class second_main extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//加载布局
setContentView(R.layout.secondanli);
//找到我们关心的控件
TextView tv_name = (TextView) findViewById(R.id.tv_name);
TextView tv_pwd = (TextView) findViewById(R.id.tv_pwd);
TextView tv_sex= (TextView) findViewById(R.id.tv_sex);
//获取开启此activity的意图对象
Intent intent =getIntent();
//获取携带来的数据
String name=intent.getStringExtra("name");
String pwd=intent.getStringExtra("pwd");
int sex=intent.getIntExtra("sex", 0);
//展示到控件上
tv_name.setText(name);
tv_pwd.setText(pwd);
switch (sex) {
case 1: tv_sex.setText("男");
break;
case 2:
tv_sex.setText("女");
break;
}
}
}
习题:
两个RadioButton要实现单选需要包裹在(RadioGroup)中
열, 반환 데이터
- 반환 값을 얻기 위해 새로운 활동을 엽니 다
- onActiciytyResult () 메소드
习题
1、下列不是onActivityResult()方法参数的是(result)
2、onActivityResult()方法有三个参数,其中(resultCode)表示在返回数据时传入结果码
XI, 장비 선택 케이스
- 케이스는 재활용 장비를 구현 :
MainActivity.java의에서
package com.example.zhuangbeixuanze;
import com.example.domain.Info;
import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.text.style.UpdateAppearance;
import android.view.Menu;
import android.view.View;
import android.widget.ProgressBar;
import android.widget.TextView;
public class MainActivity extends Activity {
private ProgressBar pb1;
private ProgressBar pb2;
private ProgressBar pb3;
private TextView tv_life;
private TextView tv_atk;
private TextView tv_quick;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// 找到我们关心的控件
pb1 = (ProgressBar) findViewById(R.id.progressBar1);
pb2 = (ProgressBar) findViewById(R.id.progressBar2);
pb3 = (ProgressBar) findViewById(R.id.progressBar3);
tv_life =(TextView)findViewById(R.id.tv_life);
tv_atk =(TextView)findViewById(R.id.tv_atk);
tv_quick =(TextView)findViewById(R.id.tv_quick);
//初始化进度条的最大值
pb1.setMax(1000);
pb2.setMax(1000);
pb3.setMax(1000);
}
//点击按钮跳转到shop页面
public void click1(View v) {
Intent intent= new Intent(this,ShoppingActivity.class);
//开启一个页面并且要开启这个页面的
startActivityForResult(intent,1);
}
//當我們開啓activity關閉使用的方法
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if(resultCode==10)
{
//代表數據來源於shopping activity
Info info=(Info)data.getExtras().get("info");
//更新u i
updateProgressBar(info);
}
super.onActivityResult(requestCode, resultCode, data);
}
//u i
private void updateProgressBar(Info info) {
//获取当前进度
int progress1=pb1.getProgress();
int progress2=pb2.getProgress();
int progress3=pb3.getProgress();
//更新进度
pb1.setProgress(progress1+info.getLife());
pb2.setProgress(progress2+info.getAttack());
pb3.setProgress(progress3+info.getQuick());
//更新一些text view的值
tv_life.setText(pb1.getProgress()+"");
tv_atk.setText(pb2.getProgress()+"");
tv_quick.setText(pb3.getProgress()+"");
}
}
에서 ShoppingActivity
package com.example.zhuangbeixuanze;
import com.example.domain.Info;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.RelativeLayout;
import android.widget.TextView;
public class ShoppingActivity extends Activity implements OnClickListener{
private Info info;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
//加载布局
setContentView(R.layout.activity_shop);
findViewById(R.id.rl).setOnClickListener(this);
//初始化顯示數據
info=new Info("金劍", 20, 100, 20);
//找到控件數據
TextView tv_name = (TextView) findViewById(R.id.tv_name);
TextView tv_life = (TextView) findViewById(R.id.tv_life);
TextView tv_attack = (TextView) findViewById(R.id.tv_attack);
TextView tv_speed= (TextView) findViewById(R.id.tv_speed);
//初始化數據,展示到控件上
tv_attack.setText("攻擊力"+info.getAttack());
tv_life.setText("生命值"+info.getLife());
tv_speed.setText("速度"+info.getQuick());
tv_name.setText(info.getName());
}
@Override
public void onClick(View v){
// 具體判斷點擊的是誰
switch (v.getId()) {
case R.id.rl:
//獲取當前數據,把info數據返回
Intent intent=new Intent();
intent.putExtra("info",info);
//把結果返回給調用者(main activity)
setResult(10, intent);
//關閉當前頁面,通過on activity result方法返回
finish();
break;
default:
break;
}
}
}
习题
ProgressBar设置当前进度的方法是(setProgress())