1)說明:
res:操作畫面(UI)有關的資源
drawable:圖片=>JPG,PNG,GIF...
layout:XML=>操作畫面
mipmap:ICON=>APP LOGO
values:每頁所需的標題,專有名稱
a.做兩個可以用按鈕切換的頁面,用values設定文字範本=>values/strings.xml,設定每個要使用文字的元件的代號
<resources>
<string name="app_name">Test20</string>
<string name="title1">比賽項目</string>
<string name="t1_1">足球</string>
<string name="t1_2">棒球</string>
<string name="title2">身分別</string>
<string name="t2_1">男</string>
<string name="t2_2">女</string>
</resources>
**說明:
1.name="代號"
2. <string name="app_name">Test20</string>=>這邊兩個tag中間就是要顯示的內容
3.如果button的文字也想要設定,也可在此設定
b.切回ui介面使用@string/title1就可以抓到 strings.xml中設定的內容了(如下)
<TextView
android:id="@+id/textView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="30sp"
android:text="@string/title1" />
c.不用onclick用別的做法切換頁面
private Button.OnClickListener k=new Button.OnClickListener(){
@Override
public void onClick(View view) {
Intent in=new Intent();
in.setClass(MainActivity.this,P2.class);
startActivity(in);
}
};
**說明:
1.因為這個功能只給 MainActivity這個class用,所以可以設定private
2. Button.打完之後精靈抓出來的全部都是按鈕操作的模式,選擇要用的
3. OnClickListener是interface,不能直接new,所以是用匿名類別的作法,實際上是new {}中的內容
4. OnClickListener是在等使用者按下去的動作
5.此時k就成為一個listener物件,裡面有onClick method,這個method就是要做煥頁的動作
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
a1=(Button)findViewById(R.id.a1);
a2=(Button)findViewById(R.id.a2);
c1=(CheckBox) findViewById(R.id.c1);
c2=(CheckBox) findViewById(R.id.c2);
a1.setOnClickListener(k);
}
**說明:
1.按a1時,啟動k物件的內容,要寫在onCreate中,當app啟動時就要執行a1的等待功能
2.a1.setOnclickListener(k)就是在a1設定一個等user按下的功能
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
a1=(Button)findViewById(R.id.a1);
a2=(Button)findViewById(R.id.a2);
c1=(CheckBox) findViewById(R.id.c1);
c2=(CheckBox) findViewById(R.id.c2);
a1.setOnClickListener(k);
a2.setOnClickListener(k2);
}
private Button.OnClickListener k=new Button.OnClickListener(){
@Override
public void onClick(View view) {
Intent in=new Intent();
in.setClass(MainActivity.this,P2.class);
startActivity(in);
}
};
private Button.OnClickListener k2=new Button.OnClickListener(){
@Override
public void onClick(View view) {
String msg="";
if(c1.isChecked())msg=msg+"足球\n";
if(c2.isChecked())msg=msg+"棒球";
Toast t=Toast.(MainActivity.this,"welcome to this world",Toast.LENGTH_LONG);
t.setGravity(Gravity.CENTER,0,0);
t.show();
**說明:
可以在下方寫很多功能,直接在上面的按鈕套用想要的功能
public class P2 extends AppCompatActivity {
Button b1,b2;
RadioButton r1,r2;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_p2);
b1=(Button)findViewById(R.id.b1);
b2=(Button)findViewById(R.id.b2);
r1=(RadioButton) findViewById(R.id.r1);
r2=(RadioButton) findViewById(R.id.r2);
b1.setOnClickListener(
new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent in=new Intent();
in.setClass(P2.this,MainActivity.class);
startActivity(in);
}
}
);
}
}
**說明:
在第二頁改為,不再new物件給k,直接把listener物件在setOnClickListener中new
2)顯示訊息=>Tosast(可以搭配if或exception,指定在某些狀況下出現)
a.Toast 物件名稱=Toast.makeText(目前的class.this,"內容",持續時間);
物件名.show();
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Toast t=Toast.makeText(MainActivity.this,"welcome to this world",Toast.LENGTH_LONG);
t.show();
}
}
b.Toast.makeText(目前的class.this,"內容",時間).show();
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Toast.makeText(MainActivity.this,"welcome to this world",Toast.LENGTH_LONG).show();
}
}
c.如果直接用show()會放在最下面,要調整位置可以在show()之前用
=>setGravity(Gravity.位置,x,y)
=>位置:CENTER,LEFT,RIGHT....
=> x從上述指定位置往左(負)右(正)調整
=>y從上述指定位置往上(負)下(正)調整