2012년 4월 30일 월요일

[모바일 하이브리드 웹 과정]SudoKuApp

Abort.java


package kr.sgdata.android.sudoku1;

import android.app.Activity;
import android.os.Bundle;

public class About extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.about);
}
}

Prefs.java


package kr.sgdata.android.sudoku1;

import android.os.Bundle;
import android.preference.PreferenceActivity;

public class Prefs extends PreferenceActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.settings);
}
}

Sudoku1Activity.java


package kr.sgdata.android.sudoku1;

import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.MenuInflater;
import android.view.View.OnClickListener;

public class Sudoku1Activity extends Activity implements OnClickListener{
    /** Called when the activity is first created. */
private static final String TAG="Sudoku";

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
     
        View continueButton = findViewById(R.id.continue_button);
        continueButton.setOnClickListener(this);
     
        View newButton = findViewById(R.id.new_button);
        newButton.setOnClickListener(this);
     
        View aboutButton = findViewById(R.id.about_button);
        aboutButton.setOnClickListener(this);
     
        View exitButton = findViewById(R.id.exit_button);
        exitButton.setOnClickListener(this);
    }

public void onClick(View v) {
// TODO Auto-generated method stub
switch(v.getId()){
case R.id.continue_button:break;
case R.id.about_button:
Intent i = new Intent(this, About.class);
startActivity(i);
break;
case R.id.new_button:
openNewGameDialog();
break;
case R.id.exit_button:
finish();
break;
}
}


@Override
public boolean onCreateOptionsMenu(Menu menu) {
// TODO Auto-generated method stub
super.onCreateOptionsMenu(menu);
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.menu, menu);
return true;
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
// TODO Auto-generated method stub
switch(item.getItemId()){
case R.id.settings:
startActivity(new Intent(this, Prefs.class));
return true;
}
return false;
}

private void openNewGameDialog(){
new AlertDialog.Builder(this)
.setTitle(R.string.new_game_title)
.setItems(R.array.difficulty,
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialoginterface, int i) {
// TODO Auto-generated method stub
startGame(i);
}
})
.show();

}

private void startGame(int i){
Log.d(TAG, "clicked on "+i);
}
}

AndroidManifest.xml


<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="kr.sgdata.android.sudoku1"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk android:minSdkVersion="10" />

    <application
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:debuggable="true">
        <activity
            android:name=".Sudoku1Activity"
            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=".About"
            android:label="@string/about_title"
            android:theme="@android:style/Theme.Dialog">
        </activity>
        <activity android:name=".Prefs"
            android:label="@string/settings_title">
        </activity>
    </application>

</manifest>

res/layout/main.xml


<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="horizontal"
    android:padding="30dip"
    android:background="@color/background" >

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical"
        android:layout_gravity="center" >

        <TextView
            android:layout_gravity="center"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/main_title"
            android:layout_marginBottom="25dip"
            android:textSize="24.5sp" />

        <Button
            android:id="@+id/continue_button"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="@string/continue_label" />

        <Button
            android:id="@+id/new_button"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="@string/new_game_label" />
     
        <Button
            android:id="@+id/about_button"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="@string/about_label" />
     
        <Button
            android:id="@+id/exit_button"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="@string/exit_label" />
    </LinearLayout>

</LinearLayout>

res/layout-land/main.xml


<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="horizontal"
    android:padding="15dip"
    android:background="@color/background" >
    <LinearLayout
        android:paddingLeft="20dip"
        android:paddingRight="20dip"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical"
        android:layout_gravity="center" >
        <TextView
            android:layout_gravity="center"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/main_title"
            android:layout_marginBottom="20dip"
            android:textSize="24.5sp" />
        <TableLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:stretchColumns="*" >
            <TableRow>
                <Button
                    android:id="@+id/continue_button"
                    android:text="@string/continue_label" />
                <Button
                    android:id="@+id/new_button"
                    android:text="@string/new_game_label" />
            </TableRow>
            <TableRow>
                <Button
                    android:id="@+id/about_button"
                    android:text="@string/about_label" />
                <Button
                    android:id="@+id/exit_button"
                    android:text="@string/exit_label" />
            </TableRow>
        </TableLayout>
    </LinearLayout>
</LinearLayout>

res/values/strings.xml


<?xml version="1.0" encoding="utf-8"?>
<resources>

    <string name="hello">Hello World, Sudoku1Activity!</string>
    <string name="app_name">수도쿠</string>
    <string name="main_title">안드로이드 수도쿠</string>
    <string name="continue_label">게임 계속</string>
    <string name="new_game_label">신규 게임</string>
    <string name="about_label">게임 정보</string>
    <string name="exit_label">게임 종료</string>
 
    <string name="about_title">게임 정보</string>
    <string name="about_text">\
    스도쿠는 가로9개 세로9개, 모두 81개의 네모 칸에
    숫자를 체워가는데 각행과열3x3개의 네모칸으로
    이뤄진 9개의 상자에 1부터9까지 숫자가 딱
    한번씩만 들어가야한다.
    </string>
 
    <string name="settings_label">설정...</string>
    <string name="settings_title">수도쿠 설정</string>
    <string name="settings_shortcut">s</string>
    <string name="music_title">음악</string>
    <string name="music_summary">배경음악재생</string>
    <string name="hints_title">힌트</string>
    <string name="hints_summary">게임동안 힌트보이기</string>
 
    <string name="new_game_title">게임난이도</string>
    <string name="easy_label">쉬움</string>
    <string name="medium_label">중간</string>
    <string name="hard_label">어려움</string>

</resources>

res/values/colors.xml


<?xml version="1.0" encoding="utf-8"?>
<resources>
    <color name="background">#3500ffff</color>
</resources>

res/values/arrays.xml


<?xml version="1.0" encoding="utf-8"?>
<resources>
    <array name="difficulty">
        <item>@string/easy_label</item>
        <item>@string/medium_label</item>
        <item>@string/hard_label</item>
    </array>
</resources>


res/xml/settings.xml


<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen
    xmlns:android="http://schemas.android.com/apk/res/android">
    <CheckBoxPreference
        android:key="music"
        android:title="@string/music_title"
        android:summary="@string/music_summary"
        android:defaultValue="true"/>
    <CheckBoxPreference
        android:key="hints"
        android:title="@string/hints_title"
        android:summary="@string/hints_summary"
        android:defaultValue="true"/>    
</PreferenceScreen>

res/menu/menu.xml


<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
    <item android:id="@+id/settings"
        android:title="@string/settings_label"
        android:alphabeticShortcut="@string/settings_shortcut" />
</menu>











댓글 없음:

댓글 쓰기