Subversion Repositories AndroidProjects

Rev

Rev 25 | Blame | Compare with Previous | Last modification | View Log | RSS feed

package com.gebauz.KanaQuiz;

import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.graphics.Color;
import android.os.Bundle;
import android.view.Gravity;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.GridView;
import android.widget.TextView;

public class KanaTableActivity extends Activity
{
        public class TableAdapter extends BaseAdapter
        {
            private Context mContext;
            private KanaTable mKanaTable;
           
            public TableAdapter(Context c, int quizCharacters)
            {
                mContext = c;
                mKanaTable = new KanaTable(quizCharacters);
            }
           
            public int getCount()
            {
                return mKanaTable.getCount();
            }

            public Object getItem(int position)
            {
                return null;
            }

            public long getItemId(int position)
            {
                return 0;
            }
           
            // create a new ImageView for each item referenced by the Adapter
            public View getView(int position, View convertView, ViewGroup parent)
            {
                TextView view;
                if (convertView == null)
                {
                        // if it's not recycled, initialize some attributes
                        view = new TextView(mContext);
                       
                        final float scale = mContext.getResources().getDisplayMetrics().density;
                        int buttonSize = (int) (Constants.TABLE_ITEM_SIZE_DIP * scale + 0.5f);
                       
                        view.setLayoutParams(new GridView.LayoutParams(buttonSize, buttonSize));
                        view.setPadding(8, 8, 8, 8);
                        view.setTextColor(Color.WHITE);
                        view.setBackgroundColor(Constants.GRID_BACKGROUND_COLOR);
                        view.setGravity(Gravity.CENTER);
                }
                else
                {
                        view = (TextView)convertView;
                }
               
                String textItem = mKanaTable.getKana(position) + "\n" + mKanaTable.getRomaji(position);
                if (mKanaTable.getExtraPronounciation(position).length() > 0)
                        textItem = textItem + " " + mKanaTable.getExtraPronounciation(position);

                // make text size smaller for longer texts
                if ((mKanaTable.getRomaji(position).length() + mKanaTable.getExtraPronounciation(position).length()) > 4)
                        view.setTextSize(Constants.TABLE_TEXT_SIZE_LONG_ITEM);
                else
                        view.setTextSize(Constants.TABLE_TEXT_SIZE_SHORT_ITEM);
               
                view.setText(textItem);
               
                return view;
            }
        }

    @Override
    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.zhuyintable);
       
        Bundle bundle = this.getIntent().getExtras();
        int quizCharacters = bundle.getInt("mode");
       
        if (quizCharacters == Constants.QUIZ_HIRAGANA)
        {
                setTitle(R.string.menu_hiragana_table);        
        }
        else if (quizCharacters == Constants.QUIZ_KATAKANA)
        {
                setTitle(R.string.menu_katakana_table);        
        }
       
        GridView gridview = (GridView)findViewById(R.id.gridview);
        gridview.setAdapter(new TableAdapter(this, quizCharacters));
    }
   
   
    public static void show(Activity sourceActivity, int which)
    {
        Bundle bundle = new Bundle();
        bundle.putInt("mode", which);
       
        Intent intent = new Intent(sourceActivity, KanaTableActivity.class);
        intent.putExtras(bundle);
        sourceActivity.startActivityForResult(intent, 0);      
    }
   
}