MainActivity.Java
package com.example.qingjingmoshi;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import com.example.qingjingmoshi.Tab01Activity;
import com.example.qingjingmoshi.Tab02Activity;
import com.example.qingjingmoshi.Tab03Activity;
import com.example.qingjingmoshi.R;
import android.os.Bundle;
import android.app.Activity;
import android.app.TabActivity;
import android.content.Intent;
import android.view.Menu;
import android.view.View;
import android.widget.AdapterView;
import android.widget.GridView;
import android.widget.ImageView;
import android.widget.SimpleAdapter;
import android.widget.TabHost;
import android.widget.AdapterView.OnItemClickListener;
public class MainActivity extends TabActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//setContentView(R.layout.activity_main);
TabHost tabHost = getTabHost();
getLayoutInflater().inflate(R.layout.activity_main,
tabHost.getTabContentView());
Intent tab01Intent = new Intent();
tab01Intent.setClass(this, Tab01Activity.class);
TabHost.TabSpec tab01 = tabHost.newTabSpec("tab01")
.setIndicator("普通情景模式").setContent(tab01Intent);
tabHost.addTab(tab01);
Intent tab02Intent = new Intent();
tab02Intent.setClass(this, Tab02Activity.class);
TabHost.TabSpec tab02 = tabHost.newTabSpec("tab02")
.setIndicator("定时情景模式").setContent(tab02Intent);
tabHost.addTab(tab02);
Intent tab03Intent = new Intent();
tab03Intent.setClass(this, Tab03Activity.class);
TabHost.TabSpec tab03 = tabHost.newTabSpec("tab03")
.setIndicator("自定义情景模式").setContent(tab03Intent);
tabHost.addTab(tab03);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}
Tab1Activity.java
package com.example.qingjingmoshi; import java.security.ProtectionDomain; import android.app.Activity; import android.os.Bundle; import android.view.Menu; import com.example.qingjingmoshi.R; public class Tab01Activity extends Activity { protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_tap01); } public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.tab01, menu); return true; } }
Tab02Activity.javapackage com.example.qingjingmoshi; import java.util.Calendar; import android.app.Activity; import android.os.Bundle; import android.view.Menu; import android.widget.DatePicker; import android.widget.TextView; import android.widget.TimePicker; import com.example.qingjingmoshi.R; public class Tab02Activity extends Activity { TextView m_DaTextView; // 声明 DatePicker对象 DatePicker m_DatePicker; // 声明TimePicker对象 TimePicker m_TimePicker; // Java中的Calendar类 protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_tap02); Calendar c = Calendar.getInstance(); TextView m_Textview = (TextView) findViewById(R.id.textView1); // 获取DatePicker对象 m_DatePicker = (DatePicker) findViewById(R.id.DatePicker01); m_DatePicker.init(c.get(Calendar.YEAR), c.get(Calendar.MONTH), c.get(Calendar.DAY_OF_MONTH), new DatePicker.OnDateChangedListener() { @Override public void onDateChanged(DatePicker view, int year, int monthOfYear, int dayOfMonth) { // 当日期更改时,在这里处理 // c.set(year,monthOfYear,dayOfMonth); } }); // 获取TimePicker对象 m_TimePicker = (TimePicker) findViewById(R.id.TimePicker01); // 设置24小时制显示 m_TimePicker.setIs24HourView(true); // 监听时间改变 m_TimePicker .setOnTimeChangedListener(new TimePicker.OnTimeChangedListener() { @Override public void onTimeChanged(TimePicker view, int hourOfDay, int minute) { // 时间改变是处理 // c.srt(year,month,day,hourOfDay,mintue,second); } }); } public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.tab01, menu); return true; } }
Tab03Activity.javapackage com.example.qingjingmoshi; import java.security.ProtectionDomain; import android.app.Activity; import android.os.Bundle; import android.view.Menu; import com.example.qingjingmoshi.R; public class Tab03Activity extends Activity { protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_tap03); } public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.tab03, menu); return true; } }
布局:
Activity_tab01
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <RadioGroup android:id="@+id/RadioGroup01" android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="vertical" > <RadioButton android:id="@+id/RadioButton1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/RadioButton1" /> <RadioButton android:id="@+id/RadioButton2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/RadioButton2" /> <RadioButton android:id="@+id/RadioButton3" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/RadioButton3" /> <RadioButton android:id="@+id/RadioButton4" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/RadioButton4" /> </RadioGroup> </LinearLayout>
Activity_tab02<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <TextView android:id="@+id/textView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="设置时间 :" android:textAppearance="?android:attr/textAppearanceMedium" /> <DatePicker android:id="@+id/DatePicker01" android:layout_width="wrap_content" android:layout_height="wrap_content" /> <TimePicker android:id="@+id/TimePicker01" android:layout_width="wrap_content" android:layout_height="wrap_content" /> <RadioGroup android:id="@+id/RadioGroup01" android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="vertical" > <RadioButton android:id="@+id/RadioButton1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/RadioButton1" /> <RadioButton android:id="@+id/RadioButton2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/RadioButton2" /> <RadioButton android:id="@+id/RadioButton3" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/RadioButton3" /> <RadioButton android:id="@+id/RadioButton4" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/RadioButton4" /> </RadioGroup> = </LinearLayout>
Activity_tab03<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context=".Tab03Activity" > <ImageView android:id="@+id/imageView1" android:layout_width="30dp" android:layout_height="30dp" android:layout_alignBottom="@+id/textView1" android:layout_toRightOf="@+id/textView1" android:src="@drawable/t4" /> <TextView android:id="@+id/textView2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:layout_below="@+id/textView1" android:layout_marginLeft="49dp" android:layout_marginTop="22dp" android:text="音量:" /> <SeekBar android:id="@+id/seekBar1" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_alignBottom="@+id/textView2" android:layout_alignRight="@+id/imageButton2" android:layout_toRightOf="@+id/textView2" /> <ImageButton android:id="@+id/imageButton1" android:layout_width="90dp" android:layout_height="90dp" android:layout_alignLeft="@+id/textView2" android:layout_below="@+id/textView2" android:layout_marginTop="25dp" android:src="@drawable/t5" /> <ImageButton android:id="@+id/imageButton3" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignLeft="@+id/imageButton1" android:layout_below="@+id/imageButton1" android:layout_marginTop="43dp" android:src="@drawable/t7" /> <ImageButton android:id="@+id/imageButton4" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignTop="@+id/imageButton3" android:layout_toRightOf="@+id/imageButton3" android:src="@drawable/t8" /> <ImageButton android:id="@+id/imageButton5" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignTop="@+id/imageButton4" android:layout_toRightOf="@+id/imageButton4" android:src="@drawable/t9" /> <TextView android:id="@+id/textView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentTop="true" android:layout_alignRight="@+id/imageButton1" android:layout_marginTop="18dp" android:text="情景模式" /> <ImageButton android:id="@+id/imageButton2" android:layout_width="90dp" android:layout_height="90dp" android:layout_above="@+id/imageButton3" android:layout_alignRight="@+id/imageButton5" android:src="@drawable/t6" /> </RelativeLayout>
Strings
<?xml version="1.0" encoding="utf-8"?> <resources><string name="app_name">《情景模式》</string> <string name="action_settings">Settings</string> <string name="hello_world">Hello world!</string> <string name="RadioButton1">铃声和振动</string> <string name="RadioButton2">铃声</string> <string name="RadioButton3">震动</string> <string name="RadioButton4">静音</string></resources>结果:
在本次实验中,我采用分别布局的方法,这种当发很普遍,也很复杂,但我觉得这样条例还很清晰,每个布局对应着相应的代码,很简单易懂。