4日目:高度なUIコントロール

2529 ワード

Activity間のジャンプとパス
ジャンプステップ:
1、まずプログラムのAndroidManifest.xmlが起動し、制限ラベルに基づいて中の
 <action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />

コード,決定実行トップページactivity
2、MainActivity.JAvaはActivityを継承してonCreateメソッドを複写することでコードを実行する
setContentView(R.layout.activity_main);

呼び出しactivity_main.xml;レイアウトファイルをロード
3.レイアウトファイルでbuttonボタンを設定し、ボタンに傍受文onClickを追加し、MainActivity.JAvaではリスニング方法を記述し、
public void login1(View view) {
        Intent intent=new Intent(MainActivity.this, ScondActivity.class);
        startActivity(intent);
    }

ボタンのリスニングを実現
4、ボタンをクリックした后にlogin操作を実行して、新しいIntentオブジェクト、オブジェクトの中で2つのパラメータのように置いて、第1のパラメータはコンテキストで、私の理解は今のactivityインタフェースで、第2はジャンプするactivityインタフェースの対応するクラスです;
5、startActivity(intent);文はインタフェースのジャンプを実現する
6、インタフェースのジャンプ後、まずScondActivityを実行する.JAva,同様に継承されたactivityクラスに基づいてonCreate()メソッドを複写し,コンテンツ文のロードを実行する
setContentView(R.layout.activity_second);

呼び出しactivity_second.xmlによりページレイアウトを実現
二、Activity間の値伝達
値の転送:値は一般データ型、バイト配列、listセットに分けられます
一般的なデータ型転送:
intent.putExtra("key",12);        // 
intent.putExtra("name"," ");    // 

オブジェクト:
Student  stu =new Student();
stu.setName=" ";
stu.setAge=23;
intent.putExtra("stu",stu);

Listコレクションは、ArrayList<>コレクションのみを置くことができ、ArrayListのみがserializableシーケンス化インタフェースを実現しているため、Listは実現していない
ArrayList<Student> list=new ArrayList<Student>();
Collections.addAll(list,stu1,stu2,stu3);
intent.putExtra("list",list);

データの受信:
一般データ型受信
Intent intent=getIntent();
int key=intent.getIntExtra();
String name=intent.getStringExtra();
Log.d(TAG,key+"   " +name  );        // 

オブジェクトの受信:
Intent intent=getIntent();
Student stu=(Student)intent.getSerializableExtra();
Log.d(TAG,stu.name+""+stu.age);

コレクションの受信:
Intent intent =getIntent();
ArrayList<Student> list=(ArrayList<Student>) intent.getSerializableExtra();
Log.d(TAG,list.toString());
int checked = radioGroup.getCheckedRadioButtonId();// radioButton id
RadioButton radioButton = (RadioButton) radioGroup.findViewById(checked);
 String sex = radioButton.getText().toString();