안드로이드 모바일 응용 프로그램은 학습 기반 - 제 III 활동

장 활동

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)

2onActivityResult()方法有三个参数,其中(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())
게시 11 개 원래 기사 · 원의 찬양 3 · 조회수 313

추천

출처blog.csdn.net/weixin_44367041/article/details/104497807