課程名稱java |
基於Android平臺移動互聯網開發android |
實驗日期app |
2016年4月8日ide |
實驗項目名稱工具 |
數獨遊戲界面設計學習 |
實驗地點ui |
S3010this |
實驗類型spa |
□驗證型 √設計型 □綜合型操作系統 |
學 時 |
|
1、實驗目的及要求(本實驗所涉及並要求掌握的知識點) |
|||
【目的】 實現數獨遊戲的完整界面設計 【要求】 掌握ActionBar的使用;
|
|||
2、實驗環境(本實驗所使用的硬件設備和相關軟件) |
|||
(1)PC機 (2)操做系統:Windows XP (3)軟件: Eclipse, JDK1.6,Android SDK,ADT |
|||
3、實驗內容及步驟 |
|||
1) 導入工程Sodoku 2) 添加如下的Activity類 3) 添加如下layout資源文件 |
4、實驗結果(本實驗源程序清單及運行結果或實驗結論、實驗設計圖)
package com.example.sukodu; import android.annotation.TargetApi; import android.app.ActionBar; import android.app.Activity; import android.content.Intent; import android.os.Build; import android.os.Bundle; import android.util.Log; import android.view.Menu; import android.view.MenuInflater; import android.view.MenuItem; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.TextView; @TargetApi(Build.VERSION_CODES.HONEYCOMB) public class MainActivity extends Activity { private Button exitbtn, aboutbtn; private TextView tv1; @TargetApi(Build.VERSION_CODES.HONEYCOMB) @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); ActionBar actionBar = getActionBar(); actionBar.show(); ActionBar actionBar1 = getActionBar();// 獲取ActionBar對象 actionBar1.setDisplayShowHomeEnabled(true);// 顯示應用程序圖標 actionBar1.setDisplayHomeAsUpEnabled(true);// 將應用程序圖標轉變爲可點擊圖標,並添加一個返回箭頭。 tv1 = (TextView) findViewById(R.id.textView1); Log.i("test", "333333"); final Intent intent = getIntent(); // 獲取Intent對象 Bundle bundle = intent.getExtras(); // 獲取傳遞的數據包 tv1.setText("你的名字是:" + bundle.getString("userName")); aboutbtn = (Button) findViewById(R.id.about_btn); exitbtn = (Button) findViewById(R.id.exit_btn); exitbtn.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub // startActivity(intent); setResult(0x1717, intent); Log.i("test", "444444"); finish(); } }); aboutbtn.setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { // TODO Auto-generated method stub Intent intent = new Intent(); intent.setClass(MainActivity.this, SecondActivity.class); startActivity(intent); //finish(); } }); } public boolean onCreateOptionsMenu(Menu menu) { // TODO Auto-generated method stub MenuInflater inflater = new MenuInflater(this); inflater.inflate(R.menu.main, menu); return super.onCreateOptionsMenu(menu); } @Override public boolean onOptionsItemSelected(MenuItem item) { // TODO Auto-generated method stub switch (item.getItemId()) { /* * case android.R.id.home: // 建立啓動MainActivity的Intent Intent intent = * new Intent(this, MainActivity.class); // * 添加額外的Flag,將Activity棧中處於MainActivity之上的Activity彈出 * intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); * startActivity(intent); break; */ case R.id.help: Intent intent1 = new Intent(this, Help.class); startActivity(intent1); // finish(); break; case R.id.about: Intent intent2 = new Intent(this, About.class); startActivity(intent2); // finish(); break; case R.id.newgame: Intent intent3 = new Intent(this, New_Game.class); startActivity(intent3); // finish(); break; default: break; } return super.onOptionsItemSelected(item); } /* * @Override public boolean onCreateOptionsMenu(Menu menu) { // TODO * Auto-generated method stub getMenuInflater().inflate(R.menu.main, menu); * return true; } * * @Override public boolean onOptionsItemSelected(MenuItem item) { // TODO * Auto-generated method stub if (item.getItemId()==R.id.set) { Intent * intent=new Intent(); * intent.setClass(MainActivity.this,ShuduSettings.class); * startActivity(intent); finish(); * * } return true; } */ }
2.About.java
package com.example.sukodu; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.view.Menu; import android.view.MenuInflater; import android.view.MenuItem; public class About extends Activity{ @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); setContentView(R.layout.about_layout); } public boolean onCreateOptionsMenu(Menu menu) { // TODO Auto-generated method stub MenuInflater inflater = new MenuInflater(this); inflater.inflate(R.menu.main, menu); return super.onCreateOptionsMenu(menu); } @Override public boolean onOptionsItemSelected(MenuItem item) { // TODO Auto-generated method stub switch (item.getItemId()) { /* * case android.R.id.home: // 建立啓動MainActivity的Intent Intent intent = * new Intent(this, MainActivity.class); // * 添加額外的Flag,將Activity棧中處於MainActivity之上的Activity彈出 * intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); * startActivity(intent); break; */ case R.id.help: Intent intent1 = new Intent(this, Help.class); startActivity(intent1); // finish(); break; case R.id.about: Intent intent2 = new Intent(this, About.class); startActivity(intent2); // finish(); break; case R.id.newgame: Intent intent3 = new Intent(this, New_Game.class); startActivity(intent3); // finish(); break; default: break; } return super.onOptionsItemSelected(item); } }
3.Help.java
package com.example.sukodu; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.view.Menu; import android.view.MenuInflater; import android.view.MenuItem; public class Help extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); setContentView(R.layout.help_layout); } public boolean onCreateOptionsMenu(Menu menu) { // TODO Auto-generated method stub MenuInflater inflater = new MenuInflater(this); inflater.inflate(R.menu.main, menu); return super.onCreateOptionsMenu(menu); } @Override public boolean onOptionsItemSelected(MenuItem item) { // TODO Auto-generated method stub switch (item.getItemId()) { /* * case android.R.id.home: // 建立啓動MainActivity的Intent Intent intent = * new Intent(this, MainActivity.class); // * 添加額外的Flag,將Activity棧中處於MainActivity之上的Activity彈出 * intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); * startActivity(intent); break; */ case R.id.help: Intent intent1 = new Intent(this, Help.class); startActivity(intent1); // finish(); break; case R.id.about: Intent intent2 = new Intent(this, About.class); startActivity(intent2); // finish(); break; case R.id.newgame: Intent intent3 = new Intent(this, New_Game.class); startActivity(intent3); // finish(); break; default: break; } return super.onOptionsItemSelected(item); } }
4.New_Game.java
package com.example.sukodu; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.view.Menu; import android.view.MenuInflater; import android.view.MenuItem; public class New_Game extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); setContentView(R.layout.newgame_layout); } public boolean onCreateOptionsMenu(Menu menu) { // TODO Auto-generated method stub MenuInflater inflater = new MenuInflater(this); inflater.inflate(R.menu.main, menu); return super.onCreateOptionsMenu(menu); } @Override public boolean onOptionsItemSelected(MenuItem item) { // TODO Auto-generated method stub switch (item.getItemId()) { /* * case android.R.id.home: // 建立啓動MainActivity的Intent Intent intent = * new Intent(this, MainActivity.class); // * 添加額外的Flag,將Activity棧中處於MainActivity之上的Activity彈出 * intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); * startActivity(intent); break; */ case R.id.help: Intent intent1 = new Intent(this, Help.class); startActivity(intent1); // finish(); break; case R.id.about: Intent intent2 = new Intent(this, About.class); startActivity(intent2); // finish(); break; case R.id.newgame: Intent intent3 = new Intent(this, New_Game.class); startActivity(intent3); // finish(); break; default: break; } return super.onOptionsItemSelected(item); } }
5.AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.sukodu" android:versionCode="1" android:versionName="1.0" > <uses-sdk android:minSdkVersion="18" android:targetSdkVersion="18" /> <application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <activity android:name="com.example.sukodu.MainActivity" android:label="@string/shudu" > </activity> <activity android:name="com.example.sukodu.ShuduSettings" android:label="@string/shezhi" > </activity> <activity android:name="com.example.sukodu.LoginActivity" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <activity android:name="com.example.sukodu.SecondActivity" android:label="@string/app_name" > </activity> <activity android:name="com.example.sukodu.About" android:label="@string/shudu" > </activity> <activity android:name="com.example.sukodu.Help" android:label="@string/shudu" > </activity> <activity android:name="com.example.sukodu.New_Game" android:label="@string/shudu" > </activity> </application> </manife
1) 完成設計後,界面運行以下 初始界面: 新遊戲界面:(注:此界面只是背景,能夠自由更換,下同) 幫助界面: 關於界面:
|
||
5、實驗總結(對本實驗結果進行分析,實驗心得體會及改進意見) |
||
在此次實驗中,自學了老師的參考文檔,而後理解後嘗試應用在數獨遊戲界面上,出現了一些語法錯誤,但經過修改代碼或者導入包改正了, 還有一些邏輯上的錯誤,比較難以發現,因此耗時相對更多些。因爲達不到本身理想的效果,經過改代碼以及不斷運行,最終實現了整體要求 達到的效果。還有一個問題就是版本太低,致使運行不了ActionBar功能,程序崩潰了,可是導入了Android ADK Version18的工具,修改 了Manifest.xml文件的minSDK Version以及Target SDK Version後完美的解決了這個問題。固然,之後還需不斷增強Android學習,改善這代碼。 |
||
實驗評語 |
|
|
實驗成績 |
|
指導教師簽名: 年 月 日 |